[seam-commits] Seam SVN: r11685 - in branches/enterprise: JBPAPP_4_3_CP07 and 27 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Thu Nov 26 20:09:54 EST 2009


Author: laubai
Date: 2009-11-26 20:09:33 -0500 (Thu, 26 Nov 2009)
New Revision: 11685

Added:
   branches/enterprise/JBPAPP_4_3_CP07/
   branches/enterprise/JBPAPP_4_3_CP07/doc/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/Makefile
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/.cvsignore
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Annotations.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Author_Group.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Book_Info.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Cache.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Components.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Concepts.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Configuration.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Controls.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Conversations.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Dependencies.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Drools.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Elenhancements.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Events.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Feedback.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Framework.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Gettingstarted.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Groovy.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Hsearch.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/I18n.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Itext.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jbpm.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jms.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Mail.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Migration.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Persistence.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Preface.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Remoting.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Revision_History.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.ent
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Security.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Spring.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Testing.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Text.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tools.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tutorial.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Validation.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Webservices.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Xml.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/architecture.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/blog.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/booking.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmd.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmpfv.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/breadcrumbs.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegendropdown.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenmaintab.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenselectseam.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consolecfgwizard.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consoleoutline-before-reveng.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-seamtext.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdate.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdatecss.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/debug.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdsearch.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdtasks.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/e-ejb3.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ee5.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.xcf
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/gwt-helloworld.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-ee.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-mc.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernatecfgwizard.gif
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/issues.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/layoutForm-example.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/list.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/messages.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_0.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_2.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_3.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_4.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_5.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_6.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_0.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_seam_runtime.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_2.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_2.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_0.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_2.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess-pageflow.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-numguess.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-todo.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-testng.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/register.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/registration.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/restart_deployment.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/run_test.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-addrole.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-identitymanager.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccount.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccountschema.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager1.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager2.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties_0.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/start_server.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/switcher.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/testng.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo-process.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/tools/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ws-strategy.png
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/master.xml
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/styles/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Annotations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Author_Group.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Book_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Cache.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Components.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Concepts.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Configuration.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Controls.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Conversations.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Dependencies.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Drools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Elenhancements.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Events.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Feedback.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Framework.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Getting_Started_With_JBoss_Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gettingstarted.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Groovy.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gwt.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Hsearch.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/I18n.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Itext.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jbpm.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jms.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Mail.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Oc4j.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Persistence.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Preface.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Remoting.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Revision_History.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Seam_Reference_Guide.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Security.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Spring.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Testing.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Text.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tools.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tutorial.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Validation.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Version_Info.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Weblogic.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Webservices.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Websphere.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Xml.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/master.po
   branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/styles/
Log:
Added enterprise docs for EAP 4.3.7 Seam 2.0.2.

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/Makefile
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/Makefile	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/Makefile	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,12 @@
+#Makefile for Red Hat Documentation
+#Created by Jeff Fearn <jfearn at redhat.com>
+#Copyright Red Hat Inc. 2006
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+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
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/Makefile
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language as-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language as-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language as-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language as-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/as-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language bn-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language bn-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language bn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language bn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/bn-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language de-DE translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language de-DE translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language de-DE 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language de-DE 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/de-DE/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/.cvsignore
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/.cvsignore	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/.cvsignore	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1 @@
+master.filtered.xml


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/.cvsignore
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Annotations.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Annotations.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Annotations.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1561 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="annotations">
+   <title>Seam annotations</title>
+
+   <para>
+      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. 
+   </para>
+
+   <para>
+      All of these annotations are defined in the package 
+      <literal>org.jboss.seam.annotations</literal>. 
+   </para>
+
+   <section>
+      <title>Annotations for component definition</title>
+      <para>
+         The first group of annotations lets you define a Seam component. These 
+         annotations appear on the component class. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="name-annotation">
+            <term>
+               <literal>@Name</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Name("componentName")]]></programlisting>
+               <para>
+                  Defines the Seam component name for a class. This annotation 
+                  is required for all Seam components. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="scope-annotation">
+            <term>
+               <literal>@Scope</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Scope(ScopeType.CONVERSATION)]]></programlisting>
+               <para>
+                  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>.
+               </para>
+               <para> 
+                  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>. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="role-annotation">
+            <term>
+               <literal>@Role</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Role(name="roleName", scope=ScopeType.SESSION)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>name</literal> &#8212; the context variable 
+                        name.
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>scope</literal> &#8212; the context variable 
+                        scope. When no scope is explicitly specified, the 
+                        default depends upon the component type, as above. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="roles-annotation">
+            <term>
+               <literal>@Roles</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Roles({
+        @Role(name="user", scope=ScopeType.CONVERSATION),
+        @Role(name="currentUser", scope=ScopeType.SESSION)
+   })]]></programlisting>
+               <para>
+                  Allows specification of multiple additional roles. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="intercept-annotation">
+            <term>
+               <literal>@BypassInterceptors</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@BypassInterceptors]]></programlisting>
+               <para>
+                  Disables Seam all interceptors on a particular component or 
+                  method of a component.
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="jndiname-annotation">
+            <term>
+               <literal>@JndiName</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@JndiName("my/jndi/name")]]></programlisting>
+               <para> 
+                  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>. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="conversational-annotation">
+            <term>
+               <literal>@Conversational</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Conversational]]></programlisting>
+               <para>
+                  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. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="pernestedconversation-annotation">
+            <term>
+               <literal>@PerNestedConversation</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@PerNestedConversation]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <para>
+                  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!
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="startup-annotation">
+            <term>
+               <literal>@Startup</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Scope(APPLICATION) @Startup(depends="org.jboss.seam.bpm.jbpm")]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Scope(SESSION) @Startup]]></programlisting>
+               <para>
+                  Specifies that a session scope component is started 
+                  immediately at session creation time. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>depends</literal> &#8212; specifies that the 
+                        named components must be started first, if they are 
+                        installed. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="install-annotation">
+            <term>
+               <literal>@Install</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Install(false)]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Install(dependencies="org.jboss.seam.bpm.jbpm")]]></programlisting>
+               <para>
+                  Specifies that a component should only be stalled if the 
+                  components listed as dependencies are also installed.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Install(genericDependencies=ManagedQueueSender.class)]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Install(classDependencies="org.hibernate.Session")]]></programlisting>
+               <para>
+                  Specifies that a component should only be installed if the 
+                  named class is in the classpath. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Install(precedence=BUILT_IN)]]></programlisting>
+               <para>
+                  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):
+               </para>
+                    
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>BUILT_IN</literal> &#8212; Precedence of all 
+                        built-in Seam components
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>FRAMEWORK</literal> &#8212; Precedence to use 
+                        for components of frameworks which extend Seam
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>APPLICATION</literal> &#8212; Predence of 
+                        application components (the default precedence)
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>DEPLOYMENT</literal> &#8212; Precedence to use 
+                        for components which override application components in 
+                        a particular deployment
+                     </para>
+                  </listitem>
+        	      <listitem>
+                     <para>
+                        <literal>MOCK</literal> &#8212; Precedence for mock 
+                        objects used in testing
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+
+         <varlistentry id="synchronized-annotation">
+            <term>
+               <literal>@Synchronized</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Synchronized(timeout=1000)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="readonly-annotation">
+            <term>
+               <literal>@ReadOnly</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@ReadOnly]]></programlisting>
+               <para>
+                  Specifies that a JavaBean component or component method does 
+                  not require state replication at the end of the invocation. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="autocreate-annotation">
+            <term>
+               <literal>@AutoCreate</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@AutoCreate]]></programlisting>
+               <para>
+                  Specifies that a component will be automatically created, even 
+                  if the client does not specify <literal>create=true</literal>. 
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+   </section>
+
+   <section>
+      <title>Annotations for bijection</title>
+      <para>
+         The next two annotations control bijection. These attributes occur on 
+         component instance variables or property accessor methods. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="in-annotation">
+            <term>
+               <literal>@In</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@In]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@In(required=false)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@In(create=true)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@In(value="contextVariableName")]]></programlisting>
+               <para> 
+                  Specifies the name of the context variable explicitly, instead 
+                  of using the annotated instance variable name. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@In(value="#{customer.addresses['shipping']}")]]></programlisting>
+               <para>
+                  Specifies that a component attribute is to be injected by 
+                  evaluating a JSF EL expression at the beginning of each 
+                  component invocation. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>value</literal> &#8212; 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>. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>create</literal> &#8212; 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. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>required</literal> &#8212; specifies Seam 
+                        should throw an exception if the context variable is 
+                        undefined in all contexts. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="out-annotation">
+            <term>
+               <literal>@Out</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Out]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Out(required=false)]]></programlisting>
+               <para> 
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Out(scope=ScopeType.SESSION)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <para> 
+                  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). 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Out(value="contextVariableName")]]></programlisting>
+               <para>
+                  Specifies the name of the context variable explicitly, instead
+                  of using the annotated instance variable name. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>value</literal> &#8212; specifies the name of 
+                        the context variable. Default to the name of the 
+                        component attribute. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>required</literal> &#8212; specifies Seam 
+                        should throw an exception if the component attribute is 
+                        null during outjection. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+      <para>
+         Note that it is quite common for these annotations to occur together, 
+         for example: 
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[@In(create=true) @Out private User currentUser;]]></programlisting>
+
+      <para> 
+         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. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="unwrap-annotation">
+            <term>
+               <literal>@Unwrap</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Unwrap]]></programlisting>
+               <para>
+                  Specifies that the object returned by the annotated getter 
+                  method is the thing that is injected instead of the component 
+                  instance itself. 
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+      <para>
+         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. 
+      </para>
+
+      <variablelist >
+         <varlistentry id="factory-annotation">
+            <term>
+               <literal>@Factory</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Factory("processInstance") public void createProcessInstance() { ... }]]></programlisting>
+               <para>
+                  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>.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Factory("processInstance", scope=CONVERSATION) public ProcessInstance createProcessInstance() { ... }]]></programlisting>
+               <para>
+                  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). 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>value</literal> &#8212; specifies the name of 
+                        the context variable. If the method is a getter method, 
+                        default to the JavaBeans property name. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>scope</literal> &#8212; specifies the scope 
+                        that Seam should bind the returned value to. Only 
+                        meaningful for factory methods which return a value. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>autoCreate</literal> &#8212; 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>. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+      <para>
+         This annotation lets you inject a <literal>Log</literal>: 
+      </para>
+
+      <variablelist>
+         <varlistentry id="logger-annotation">
+            <term>
+               <literal>@Logger</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Logger("categoryName")]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>value</literal> &#8212; specifies the name of 
+                        the log category. Default to the name of the component 
+                        class.
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+      <para>
+         The last annotation lets you inject a request parameter value: 
+      </para>
+
+      <variablelist>
+         <varlistentry id="requestparameter-annotation">
+            <term>
+               <literal>@RequestParameter</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@RequestParameter("parameterName")]]></programlisting>
+               <para>
+                  Specifies that a component attribute is to be injected with the 
+                  value of a request parameter. Basic type conversions are 
+                  performed automatically. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>value</literal> &#8212; specifies the name of 
+                        the request parameter. Default to the name of the 
+                        component attribute.
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+   </section>
+
+   <section>
+      <title>Annotations for component lifecycle methods</title>
+      <para>
+         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. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="create-annotation">
+            <term>
+               <literal>@Create</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Create]]></programlisting>
+               <para>
+                  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.
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="destroy-annotation">
+            <term>
+               <literal>@Destroy</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Destroy]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <para> 
+                  Destroy methods should be used only for cleanup. 
+                  <emphasis>Seam catches, logs and swallows any exception that 
+                  propagates out of a destroy method.</emphasis>
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="observer-annotation">
+            <term>
+               <literal>@Observer</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Observer("somethingChanged")]]></programlisting>
+               <para>
+                  Specifies that the method should be called when a 
+                  component-driven event of the specified type occurs.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Observer(value="somethingChanged",create=false)]]></programlisting>
+               <para>
+                  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.
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+   </section>
+
+   <section>
+      <title>Annotations for context demarcation</title>
+      <para>
+         These annotations provide declarative conversation demarcation. They 
+         appear on methods of Seam components, usually action listener methods. 
+      </para>
+
+      <para>
+         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>. 
+      </para>
+
+      <variablelist id="begin-annotation">
+         <varlistentry>
+            <term>
+               <literal>@Begin</literal>
+            </term>
+            <listitem>
+   			   <programlisting role="JAVA"><![CDATA[@Begin]]></programlisting>
+               <para>
+                  Specifies that a long-running conversation begins when this 
+                  method returns a non-null outcome without exception.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Begin(join=true)]]></programlisting>
+               <para>
+                  Specifies that if a long-running conversation is already in
+                  progress, the conversation context is simply propagated.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Begin(nested=true)]]></programlisting>
+               <para>
+                  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. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Begin(pageflow="process definition name")]]></programlisting>
+               <para>
+                  Specifies a jBPM process definition name that defines the 
+                  pageflow for this conversation.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Begin(flushMode=FlushModeType.MANUAL)]]></programlisting>
+               <para>
+                  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).
+               </para>
+
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>join</literal> &#8212; 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.
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>nested</literal> &#8212; specifies that a 
+                        nested conversation should be started if a long-running 
+                        conversation is already in progress. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>flushMode</literal> &#8212; set the flush mode 
+                        of any Seam-managed Hibernate sessions or JPA 
+                        persistence contexts that are created during this
+                        conversation.
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>pageflow</literal> &#8212; a process definition
+                        name of a jBPM process definition deployed via 
+                        <literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions.</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>            
+         <varlistentry id="end-annotation">
+            <term>
+               <literal>@End</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@End]]></programlisting>
+               <para>
+                  Specifies that a long-running conversation ends when this 
+                  method returns a non-null outcome without exception.
+	          </para>
+               <itemizedlist>
+	             <listitem>
+                     <para>
+                        <literal>beforeRedirect</literal> &#8212; 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. 
+                     </para>
+                  </listitem>
+	          </itemizedlist>
+           </listitem>	
+         </varlistentry>
+         <varlistentry id="starttask-annotation">
+            <term>
+               <literal>@StartTask</literal>
+            </term>
+            <listitem>
+		      <programlisting role="JAVA"><![CDATA[@StartTask]]></programlisting>
+               <para>
+                  "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. 
+               </para>
+	          <itemizedlist>
+	             <listitem>
+	                <para>
+                        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>.) 
+                     </para>
+	             </listitem>
+                  <listitem>
+                     <para>
+                        <literal>taskIdParameter</literal> &#8212; 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. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>flushMode</literal> &#8212; set the flush 
+                        mode of any Seam-managed Hibernate sessions or JPA 
+                        persistence contexts that are created during this 
+                        conversation.
+		            </para>
+                  </listitem>
+              </itemizedlist>
+           </listitem>
+         </varlistentry>
+            
+         <varlistentry id="begintask-annotation">
+            <term>
+               <literal>@BeginTask</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@BeginTask]]></programlisting>
+               <para>
+                  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. 
+               </para>
+              <itemizedlist>
+                 <listitem>
+                     <para>
+                        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>.
+	                </para>
+                 </listitem>
+                 <listitem>
+                     <para>
+                        <literal>taskIdParameter</literal> &#8212; 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. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>flushMode</literal> &#8212; set the flush 
+                        mode of any Seam-managed Hibernate sessions or JPA 
+                        persistence contexts that are created during this
+                        conversation. 
+                     </para>
+                  </listitem>
+	          </itemizedlist>
+           </listitem>
+         </varlistentry>
+         <varlistentry id="endtask-annotation">
+            <term>
+               <literal>@EndTask</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@EndTask]]></programlisting>
+               <para>
+                  "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>. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@EndTask(transition="transitionName")]]></programlisting>
+               <para>
+                  Triggers the given jBPM transition. 
+               </para>
+               <itemizedlist>
+	             <listitem>
+                     <para>
+                        <literal>transition</literal> &#8212; the name of the 
+                        jBPM transition to be triggered when ending the task.
+                         Defaults to the default transition. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>beforeRedirect</literal> &#8212; 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. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="createprocess-annotation">
+            <term>
+               <literal>@CreateProcess</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@CreateProcess(definition="process definition name")]]></programlisting>
+               <para>
+                  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>. 
+               </para>
+               <itemizedlist>     
+                   <listitem>
+                      <para>
+                         <literal>definition</literal> &#8212; the name of the
+                         jBPM process definition deployed via 
+                         <literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal>. 
+                      </para>
+                   </listitem>
+                </itemizedlist>
+             </listitem>
+         </varlistentry>
+         <varlistentry id="resumeprocess-annotation">
+            <term>
+               <literal>@ResumeProcess</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@ResumeProcess(processIdParameter="processId")]]></programlisting>
+               <para>
+                  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>.
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>processIdParameter</literal> &#8212; the name 
+                        a request parameter holding the process id. Default to
+                        <literal>"processId"</literal>. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+            
+         <varlistentry id="transition-annotation">
+            <term>
+               <literal>@Transition</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Transition("cancel")]]></programlisting>
+               <para>
+                  Marks a method as signalling a transition in the current jBPM 
+                  process instance whenever the method returns a non-null 
+                  result.
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+   </section>
+
+   <section>
+      <title>Annotations for use with Seam JavaBean components in a J2EE environment</title>
+      <para>
+         Seam provides an annotation that lets you force a rollback of the JTA 
+         transaction for certain action listener outcomes. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="transactional-annotation">
+            <term>
+               <literal>@Transactional</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Transactional]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <para>
+                  <emphasis>Do not use this annotation on EJB 3.0 components,
+                  use <literal>@TransactionAttribute</literal>!</emphasis>
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry>
+            <term>
+               <literal>@ApplicationException</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@ApplicationException]]></programlisting>
+               <para> 
+                  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).
+               </para>
+               <para>   
+                  <emphasis>Do not use this annotation on EJB 3.0 components, 
+                  use <literal>@javax.ejb.ApplicationException</literal> 
+                  instead</emphasis>.
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>rollback</literal> &#8212; by default 
+                        <literal>false</literal>, if <literal>true</literal>
+                        this exception should set the transaction to rollback 
+                        only 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>end</literal> &#8212; by default 
+                        <literal>false</literal>, if <literal>true</literal> this
+                        exception should end the current long-running 
+                        conversation
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry>
+            <term>
+               <literal>@Interceptors</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Interceptors({DVDInterceptor, CDInterceptor})]]></programlisting>
+               <para> 
+                  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.
+               </para>
+               <para>   
+                  <emphasis>Do not use this annotations on EJB 3.0 components, 
+                  use <literal>@javax.interceptor.Interceptors</literal> 
+                  instead</emphasis>.
+              </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+      <para>
+         These annotations are mostly useful for JavaBean Seam components. If 
+         you use EJB 3.0 components, you should use the standard Java EE5 
+         annotation.
+      </para>
+   </section>
+
+   <section>
+      <title>Annotations for exceptions</title>
+        
+      <para>
+         These annotations let you specify how Seam should handle an exception 
+         that propagates out of a Seam component. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="redirect-annotation">
+            <term>
+               <literal>@Redirect</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Redirect(viewId="error.jsp")]]></programlisting>
+               <para>
+                  Specifies that the annotated exception causes a browser 
+                  redirect to a specified view id. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>viewId</literal> &#8212; specifies the JSF view
+                        id to redirect to.  You can use EL here. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>message</literal> &#8212; a message to be 
+                        displayed, default to the exception message.
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>end</literal> &#8212; specifies that the 
+                        long-running conversation should end, default to 
+                        <literal>false</literal>. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="httperror-annotation">
+            <term>
+               <literal>@HttpError</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@HttpError(errorCode=404)]]></programlisting>
+               <para>
+                  Specifies that the annotated exception causes a HTTP error to 
+                  be sent. 
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>errorCode</literal> &#8212; the HTTP error 
+                        code, default to <literal>500</literal>. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>message</literal> &#8212; a message to be sent 
+                        with the HTTP error, default to the exception message. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>end</literal> &#8212; specifies that the 
+                        long-running conversation should end, default to 
+                        <literal>false</literal>. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+             </listitem>
+         </varlistentry>
+      </variablelist>
+   </section>
+
+   <section>
+      <title>Annotations for Seam Remoting</title>
+      <para>
+         Seam Remoting requires that the local interface of a session bean be 
+         annotated with the following annotation:
+      </para>
+
+      <variablelist>
+         <varlistentry id="webremote-annotation">
+            <term>
+               <literal>@WebRemote</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@WebRemote(exclude="path.to.exclude")]]></programlisting>
+               <para>
+                  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).
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+   </section>
+
+   <section>
+      <title>Annotations for Seam interceptors</title>
+      <para>
+         The following annotations appear on Seam interceptor classes. 
+      </para>
+      <para>
+         Please refer to the documentation for the EJB 3.0 specification for 
+         information about the annotations required for EJB interceptor definition. 
+      </para>
+
+      <variablelist>
+         <varlistentry id="interceptor-annotation">
+            <term>
+               <literal>@Interceptor</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Interceptor(stateless=true)]]></programlisting>
+               <para>
+                  Specifies that this interceptor is stateless and Seam may 
+                  optimize replication. 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Interceptor(type=CLIENT)]]></programlisting>
+               <para>
+                  Specifies that this interceptor is a "client-side" 
+                  interceptor that is called before the EJB container.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Interceptor(around={SomeInterceptor.class, OtherInterceptor.class})]]></programlisting>
+               <para>
+                  Specifies that this interceptor is positioned higher in 
+                  the stack than the given interceptors.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Interceptor(within={SomeInterceptor.class, OtherInterceptor.class})]]></programlisting>
+               <para> 
+                  Specifies that this interceptor is positioned deeper in 
+                  the stack than the given interceptors.
+               </para>
+	        </listitem>
+         </varlistentry>
+      </variablelist>
+
+   </section>
+
+   <section>
+      <title>Annotations for asynchronicity</title>
+      <para>
+         The following annotations are used to declare an asynchronous method, 
+         for example: 
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[@Asynchronous public void scheduleAlert(Alert alert, @Expiration Date date) { ... }]]></programlisting>
+      <programlisting role="JAVA"><![CDATA[@Asynchronous public Timer scheduleAlerts(Alert alert, 
+   @Expiration Date date, 
+   @IntervalDuration long interval) { ... }]]></programlisting>
+
+      <variablelist>
+         <varlistentry id="asynchronous-annotation">
+            <term>
+               <literal>@Asynchronous</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Asynchronous]]></programlisting>
+               <para>
+                  Specifies that the method call is processed asynchronously. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="duration-annotation">
+            <term>
+               <literal>@Duration</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Duration]]></programlisting>
+               <para>
+                  Specifies that a parameter of the asynchronous call is the 
+                  duration before the call is processed (or first processed for 
+                  recurring calls). 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="expiration-annotation">
+            <term>
+               <literal>@Expiration</literal>
+             </term>
+             <listitem>
+                <programlisting role="JAVA"><![CDATA[@Expiration]]></programlisting>
+                <para>
+                   Specifies that a parameter of the asynchronous call is the 
+                   datetime at which the call is processed (or first processed 
+                   for recurring calls). 
+                </para>
+             </listitem>
+         </varlistentry>
+         <varlistentry id="intervalduration-annotation">
+            <term>
+               <literal>@IntervalDuration</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@IntervalDuration]]></programlisting>
+               <para>
+                  Specifies that an asynchronous method call recurs, and that 
+                  the annotationed parameter is duration between recurrences. 
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+   </section>
+
+   <section>
+      <title>Annotations for use with JSF</title>
+         <para> 
+            The following annotations make working with JSF easier.
+         </para>
+	        
+         <variablelist>
+            <varlistentry>
+               <term>
+                  <literal>@Converter</literal>
+               </term>
+               <listitem>
+                  <para>
+                     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>.
+                  </para>
+                  <itemizedlist>
+                     <listitem>
+                        <para>
+                           <literal>id</literal> &#8212; the JSF converter id. 
+                           Defaults to the component name.
+                        </para>
+                     </listitem>
+                     <listitem>
+                        <para>
+                           <literal>forClass</literal> &#8212; if specified, 
+                           register this component as the default converter for 
+                           a type.
+                        </para>
+                     </listitem>
+                  </itemizedlist>
+               </listitem>
+            </varlistentry>
+            <varlistentry>
+               <term>
+                  <literal>@Validator</literal>
+               </term>
+               <listitem>
+                  <para>
+                     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>.
+                  </para>
+                  <itemizedlist>
+                     <listitem>
+                        <para>
+                           <literal>id</literal> &#8212; the JSF validator id. 
+                           Defaults to the component name.
+                        </para>
+                     </listitem>
+                  </itemizedlist>
+               </listitem>
+            </varlistentry>
+         </variablelist>
+    	
+         <section>
+	        <title>Annotations for use with <literal>dataTable</literal></title>
+	        <para>
+               The following annotations make it easy to implement clickable 
+               lists backed by a stateful session bean. They appear on 
+               attributes. 
+            </para>
+	
+            <variablelist>
+               <varlistentry id="datamodel-annotation">
+                  <term>
+                     <literal>@DataModel</literal>
+                  </term>
+                  <listitem>
+                     <programlisting role="JAVA"><![CDATA[@DataModel("variableName")]]></programlisting>
+                  <para>
+                     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>. 
+                  </para>
+                  <itemizedlist>
+                     <listitem>
+                        <para>
+                           <literal>value</literal> &#8212; name of the 
+                           conversation context variable. Default to the 
+                           attribute name. 
+                        </para>
+                     </listitem>
+                     <listitem>
+                        <para>
+                           <literal>scope</literal> &#8212; if 
+                           <literal>scope=ScopeType.PAGE</literal> is explicitly
+                           specified, the <literal>DataModel</literal> will be 
+                           kept in the <literal>PAGE</literal> context. 
+                        </para>
+                     </listitem>
+                  </itemizedlist>
+               </listitem>
+            </varlistentry>
+            <varlistentry id="datamodelselection-annotation">
+               <term>
+                  <literal>@DataModelSelection</literal>
+               </term>
+               <listitem>
+                  <programlisting role="JAVA"><![CDATA[@DataModelSelection]]></programlisting>
+                  <para> 
+                     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>.
+                  </para>
+                  <para> 
+                     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.
+                  </para> 
+                  <itemizedlist>
+                     <listitem>
+                        <para>
+                           <literal>value</literal> &#8212; name of the 
+                           conversation context variable. Not needed if there is
+                           exactly one <literal>@DataModel</literal> in the 
+                           component.
+                        </para>
+                     </listitem>
+                  </itemizedlist>
+               </listitem>
+            </varlistentry>
+            <varlistentry id="datamodelselectionindex-annotation">
+               <term>
+                  <literal>@DataModelSelectionIndex</literal>
+               </term>
+               <listitem>
+                  <programlisting role="JAVA"><![CDATA[@DataModelSelectionIndex]]></programlisting>
+                  <para>
+                     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>.
+                  </para>
+                  <itemizedlist>
+                     <listitem>
+                        <para>
+                           <literal>value</literal> &#8212; name of the 
+                           conversation context variable. Not needed if there 
+                           is exactly one <literal>@DataModel</literal> in the 
+                           component. 
+                        </para>
+                     </listitem>
+                  </itemizedlist>
+               </listitem>
+            </varlistentry>
+          </variablelist>
+      </section>
+   </section>
+
+   <section>
+      <title>Meta-annotations for databinding</title>
+      <para> 
+         These meta-annotations make it possible to implement similar 
+         functionality to <literal>@DataModel</literal> and 
+         <literal>@DataModelSelection</literal> for other datastructures apart
+         from lists.
+      </para>
+
+      <variablelist >
+         <varlistentry id="databinderclass-annotation">
+            <term>
+               <literal>@DataBinderClass</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@DataBinderClass(DataModelBinder.class)]]></programlisting>
+               <para>
+                  Specifies that an annotation is a databinding annotation. 
+               </para>
+            </listitem>
+         </varlistentry>
+         <varlistentry id="dataselectorclass-annotation">
+            <term>
+               <literal>@DataSelectorClass</literal>
+             </term>
+             <listitem>
+                <programlisting role="JAVA"><![CDATA[@DataSelectorClass(DataModelSelector.class)]]></programlisting>
+                <para>
+                   Specifies that an annotation is a dataselection annotation. 
+                </para>
+             </listitem>
+          </varlistentry>
+      </variablelist>
+   </section>
+
+   <section>
+      <title>Annotations for packaging</title>
+      <para>
+         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.
+      </para>
+
+
+      <variablelist>
+         <varlistentry id="namespace-annotation">
+            <term>
+               <literal>@Namespace</literal>
+            </term>
+            <listitem>
+               <programlisting role="JAVA"><![CDATA[@Namespace(value="http://jboss.com/products/seam/example/seampay")]]></programlisting>
+               <para>
+                  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.
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Namespace(value="http://jboss.com/products/seam/core", prefix="org.jboss.seam.core")]]></programlisting>
+               <para>
+                  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>. 
+               </para>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+   </section>
+    
+   <section>
+      <title>Annotations for integrating with the servlet container</title>
+      <para>
+         These annotations allow you to integrate your Seam components with the 
+         servlet container.
+      </para>
+
+
+      <variablelist >
+         <varlistentry>
+            <term>
+               <literal>@Filter</literal>
+             </term>
+             <listitem>
+                <para>
+                   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.
+                </para>
+                <itemizedlist>
+                   <listitem>
+                      <programlisting role="JAVA"><![CDATA[@Filter(around={"seamComponent", "otherSeamComponent"})]]></programlisting>
+                      <para>
+                         Specifies that this filter is positioned higher in the 
+                         stack than the given filters.
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <programlisting role="JAVA"><![CDATA[@Filter(within={"seamComponent", "otherSeamComponent"})]]></programlisting>
+                     <para>
+                        Specifies that this filter is positioned deeper in the 
+                        stack than the given filters. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </varlistentry>
+      </variablelist>
+
+   </section>
+
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Annotations.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Author_Group.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Author_Group.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,81 @@
+<?xml version="1.0" standalone="no"?>
+<authorgroup>
+   <author>
+      <firstname>Gavin</firstname>
+      <surname>King</surname>
+      <affiliation>
+         <shortaffil>Project Lead</shortaffil>              
+      </affiliation>
+   </author>
+   <author>
+      <firstname>Pete</firstname>
+      <surname>Muir</surname>
+   </author>
+   <author>
+      <firstname>Norman</firstname>
+      <surname>Richards</surname>
+   </author>
+   <author>
+      <firstname>Shane</firstname>
+      <surname>Bryzak</surname>
+   </author>
+   <author>
+      <firstname>Michael</firstname>
+      <surname>Yuan</surname>
+   </author>
+   <author>
+      <firstname>Mike</firstname>
+      <surname>Youngstrom</surname>
+   </author>
+   <author>
+      <firstname>Christian</firstname>
+      <surname>Bauer</surname>
+   </author>
+   <author>
+      <firstname>Jay</firstname>
+      <surname>Balunas</surname>
+   </author>
+   <author>
+      <firstname>Dan</firstname>
+      <surname>Allen</surname>
+   </author>
+   <author>
+      <firstname>Max</firstname>
+      <othername>Rydahl</othername>
+      <surname>Andersen</surname>
+   </author>
+   <author>
+      <firstname>Emmanuel</firstname>
+      <surname>Bernard</surname>
+   </author>
+      <author>
+      <firstname>Marek</firstname>
+      <surname>Novotny</surname>
+   </author>
+   <othercredit>
+      <firstname>James</firstname>
+      <surname>Cobb</surname>
+      <affiliation>
+         <shortaffil>Graphic Design</shortaffil>
+      </affiliation>
+   </othercredit>
+   <othercredit>
+      <firstname>Cheyenne</firstname>
+      <surname>Weaver</surname>
+      <affiliation>
+         <shortaffil>Graphic Design</shortaffil>
+      </affiliation>
+   </othercredit>
+   <othercredit>
+      <firstname>Mark</firstname>
+      <surname>Newton</surname>
+   </othercredit>
+   <othercredit>
+      <firstname>Steve</firstname>
+      <surname>Ebersole</surname>
+   </othercredit>
+   <editor>
+      <firstname>Samson</firstname>
+      <surname>Kittoli</surname>
+   </editor>
+</authorgroup>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Book_Info.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Book_Info.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+<bookinfo id="Seam2_Reference_Guide">
+	<title>Seam Reference Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 7</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>2</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<pubdate>November, 2009</pubdate>
+	<isbn>N/A</isbn>
+	<abstract><para>This book is a Reference Guide to Seam 2.0.2.FP for JBoss Enterprise Application Platform 4.3.0_CP07</para>
+	</abstract>
+	<corpauthor>
+	  <inlinemediaobject>
+		<imageobject>
+			 <imagedata fileref="Common_Content/images/title_logo.svg" />
+		 </imageobject>
+	  </inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<!-- <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
+
+


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Book_Info.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Cache.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Cache.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Cache.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="cache">
+    <title>Caching</title>
+    
+    <para>
+        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&#8212;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. 
+    </para>
+    
+    <para>
+        Almost anything we can possibly do to share the database <emphasis>less 
+        often</emphasis> is worth doing.
+    </para>
+    
+    <para>
+        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:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+            <para>
+                The database, of course, has its own cache. This is 
+                super-important, but can't scale like a cache in the
+                application tier.
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+       <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+       <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+       <listitem>
+            <para>
+                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.
+            </para>
+        </listitem>
+    </itemizedlist>
+    
+    <para>
+        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>&lt;s:cache&gt;</literal> control.
+    </para>
+    
+    <section>
+        <title>Using JBossCache in Seam</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            You can find a sample <literal>treecache.xml</literal> in
+            <literal>examples/blog/resources/treecache.xml</literal>.
+        </para>
+             
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            Now you can inject the cache into any Seam component:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("chatroom")
+public class Chatroom {
+    @In PojoCache pojoCache;
+    
+    public void join(String username) {
+      try
+      {
+         Set<String> userList = (Set<String>) pojoCache.get("chatroom", "userList");
+         if (userList==null) 
+         {
+            userList = new HashSet<String>();
+            pojoCache.put("chatroom", "userList", userList);
+         }
+         userList.put(username);
+      }
+      catch (CacheException ce)
+      {
+         throw new RuntimeException(ce);
+      }
+    }
+}]]></programlisting>
+
+        <para>
+            If you want to have multiple JBossCache configurations in your application,
+            use <literal>components.xml</literal>:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[<core:pojo-cache name="myCache" cfg-resource-name="myown/cache.xml"/>]]></programlisting>
+        
+    </section>
+    
+    <section>
+        <title>Page fragment caching</title>
+        
+        <para>
+            The most interesting user of JBossCache is the <literal>&lt;s:cache&gt;</literal>
+            tag, Seam's solution to the problem of page fragment caching in JSF.
+            <literal>&lt;s:cache&gt;</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.)
+        </para>
+        
+        <para>
+            <literal>&lt;s:cache&gt;</literal> is used for caching some rendered content which
+            changes rarely. For example, the welcome page of our blog displays the recent
+            blog entries:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:cache key="recentEntries-#{blog.id}" region="welcomePageFragments">
+   <h:dataTable value="#{blog.recentEntries}" var="blogEntry">
+      <h:column>
+         <h3>#{blogEntry.title}</h3>
+         <div>
+            <s:formattedText value="#{blogEntry.body}"/>
+         </div>
+      </h:column>
+   </h:dataTable>
+</s:cache>]]></programlisting>
+
+        <para>
+            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.)
+        </para>
+        
+        <para>
+            Of course, the big problem with <literal>&lt;s:cache&gt;</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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[public void post() {
+    ...
+    entityManager.persist(blogEntry);
+    pojoCache.remove("welcomePageFragments", "recentEntries-" + blog.getId() );
+}]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+        
+    </section>
+    
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Cache.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Components.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Components.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Components.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1559 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="components">
+    <title>Built-in Seam components</title>
+    <para>
+        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.
+    </para>
+    
+    <para>
+        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>.
+    </para>
+    
+    <para>
+        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.
+    </para>
+    
+    <section>
+        <title>Context injection components</title>
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In private Context sessionContext;]]></programlisting>
+    
+    	<variablelist >
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.contexts</literal></term>
+                <listitem>
+                    <para>
+                        Component that provides access to Seam Context objects, for
+                        example <literal>org.jboss.seam.core.contexts.sessionContext['user']</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.facesContext</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the <literal>FacesContext</literal> context 
+                        object (not a true Seam context)
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        
+        <para>
+            All of these components are always installed.
+        </para>
+
+    </section>
+    
+    <section>
+        <title>Utility components</title>
+        <para>
+            These components are merely useful.
+        </para>
+        
+         <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.facesMessages</literal></term>
+                <listitem>
+                    <para>
+                        Allows faces success messages to propagate across a browser redirect.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>add(FacesMessage facesMessage)</literal> &#8212; add 
+                            a faces message, which will be displayed during the next render
+                            response phase that occurs in the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>add(String messageTemplate)</literal> &#8212; add 
+                            a faces message, rendered from the given message template
+                            which may contain EL expressions.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>add(Severity severity, String messageTemplate)</literal> &#8212; 
+                            add a faces message, rendered from the given message template
+                            which may contain EL expressions.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>addFromResourceBundle(String key)</literal> &#8212; 
+                            add a faces message, rendered from a message template defined
+                            in the Seam resource bundle which may contain EL expressions.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>addFromResourceBundle(Severity severity, String key)</literal> &#8212; 
+                            add a faces message, rendered from a message template defined
+                            in the Seam resource bundle which may contain EL expressions.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>clear()</literal> &#8212; clear all messages.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.redirect</literal></term>
+                <listitem>
+                    <para>
+                        A convenient API for performing redirects with parameters (this
+                        is especially useful for bookmarkable search results screens).
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>redirect.viewId</literal> &#8212; the JSF view id
+                            to redirect to.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>redirect.conversationPropagationEnabled</literal> &#8212; 
+                            determines whether the conversation will propagate across the 
+                            redirect.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>redirect.parameters</literal> &#8212; a map of
+                            request parameter name to value, to be passed in the redirect
+                            request.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>execute()</literal> &#8212; perform the redirect
+                            immediately.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>captureCurrentRequest()</literal> &#8212; stores 
+                            the view id and request parameters of the current GET 
+                            request (in the conversation context), for later use
+                            by calling <literal>execute()</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.httpError</literal></term>
+                <listitem>
+                    <para>
+                        A convenient API for sending HTTP errors.
+                    </para>
+                </listitem>
+             </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.events</literal></term>
+                <listitem>
+                    <para>
+                        An API for raising events that can be observed via
+                        <literal>@Observer</literal> methods, or method
+                        bindings in <literal>components.xml</literal>.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>raiseEvent(String type)</literal> &#8212; raise
+                            an event of a particular type and distribute to all
+                            observers.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>raiseAsynchronousEvent(String type)</literal> &#8212; 
+                            raise an event to be processed asynchronously by the EJB3
+                            timer service.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>raiseTimedEvent(String type, ....)</literal> &#8212; 
+                            schedule an event to be processed asynchronously by the EJB3
+                            timer service.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>addListener(String type, String methodBinding)</literal> 
+                            &#8212; add an observer for a particular event type.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+             </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.interpolator</literal></term>
+                <listitem>
+                    <para>
+                        An API for interpolating the values of JSF EL expressions in
+                        Strings.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>interpolate(String template)</literal> &#8212; scan
+                            the template for JSF EL expressions of the form <literal>#{...}</literal>
+                            and replace them with their evaluated values.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+             </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.expressions</literal></term>
+                <listitem>
+                    <para>
+                        An API for creating value and method bindings.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>createValueBinding(String expression)</literal> &#8212; create
+                            a value binding object.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>createMethodBinding(String expression)</literal> &#8212; create
+                            a method binding object.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+             </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.pojoCache</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a JBoss Cache <literal>PojoCache</literal> 
+                        instance.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>pojoCache.cfgResourceName</literal> &#8212; the name of 
+                            the configuration file. Default to <literal>treecache.xml</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        
+        <para>
+            All of these components are always installed.
+        </para>
+    </section>
+    
+    <section>
+        <title>Components for internationalization and themes</title>
+        <para>
+            The next group of components make it easy to build internationalized user interfaces
+            using Seam.
+        </para>
+        
+    	<variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.locale</literal></term>
+                <listitem>
+                    <para>
+                        The Seam locale.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.international.timezone</literal></term>
+                <listitem>
+                    <para>
+                        The Seam timezone. The timezone is session scoped.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.resourceBundle</literal></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.resourceLoader</literal></term>
+                <listitem>
+                    <para>
+                        The resource loader provides access to application resources and resource bundles.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>resourceLoader.bundleNames</literal> &#8212; the names of 
+                            the Java resource bundles to search when the Seam resource bundle is
+                            used. Default to <literal>messages</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.international.localeSelector</literal></term>
+                <listitem>
+                    <para>
+                        Supports selection of the locale either at configuration time, 
+                        or by the user at runtime.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>select()</literal> &#8212; select the specified locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.locale</literal> &#8212; the actual
+                            <literal>java.util.Locale</literal>.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.localeString</literal> &#8212; the 
+                            stringified representation of the locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.language</literal> &#8212; the language for
+                            the specified locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.country</literal> &#8212; the country for
+                            the specified locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.variant</literal> &#8212; the variant for
+                            the specified locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.supportedLocales</literal> &#8212; a list
+                            of <literal>SelectItem</literal>s representing the supported locales 
+                            listed in <literal>jsf-config.xml</literal>.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>localeSelector.cookieEnabled</literal> &#8212; specifies
+                            that the locale selection should be persisted via a cookie.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.international.timezoneSelector</literal></term>
+                <listitem>
+                    <para>
+                        Supports selection of the timezone either at configuration time, 
+                        or by the user at runtime.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>select()</literal> &#8212; select the specified locale.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>timezoneSelector.timezone</literal> &#8212; the actual
+                            <literal>java.util.TimeZone</literal>.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>timezoneSelector.timeZoneId</literal> &#8212; the 
+                            stringified representation of the timezone.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>timezoneSelector.cookieEnabled</literal> &#8212; specifies
+                            that the timezone selection should be persisted via a cookie.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.international.messages</literal></term>
+                <listitem>
+                    <para>
+                        A map containing internationalized messages rendered from message
+                        templates defined in the Seam resource bundle.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.theme.themeSelector</literal></term>
+                <listitem>
+                    <para>
+                        Supports selection of the theme either at configuration time, 
+                        or by the user at runtime.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>select()</literal> &#8212; select the specified theme.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>theme.availableThemes</literal> &#8212; the list of
+                            defined themes.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>themeSelector.theme</literal> &#8212; the selected
+                            theme.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>themeSelector.themes</literal> &#8212; a list
+                            of <literal>SelectItem</literal>s representing the defined
+                            themes.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>themeSelector.cookieEnabled</literal> &#8212; specifies
+                            that the theme selection should be persisted via a cookie.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.theme.theme</literal></term>
+                <listitem>
+                    <para>
+                        A map containing theme entries.
+                    </para>
+                </listitem>
+            </varlistentry>
+         </variablelist>
+         
+        
+        <para>
+            All of these components are always installed.
+        </para>
+    </section>
+    
+    <section>
+        <title>Components for controlling conversations</title>
+        <para>
+            The next group of components allow control of conversations by the application or 
+            user interface.
+        </para>
+        
+    	<variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.conversation</literal></term>
+                <listitem>
+                    <para>
+                        API for application control of attributes of the current Seam conversation.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>getId()</literal> &#8212; returns the current conversation id
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>isNested()</literal> &#8212; is the current conversation a
+                            nested conversation?
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>isLongRunning()</literal> &#8212; is the current conversation a
+                            long-running conversation?
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>getId()</literal> &#8212; returns the current conversation id
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>getParentId()</literal> &#8212; returns the conversation id
+                            of the parent conversation
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>getRootId()</literal> &#8212; returns the conversation id
+                            of the root conversation
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>setTimeout(int timeout)</literal> &#8212; sets the timeout
+                            for the current conversation
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>setViewId(String outcome)</literal> &#8212; sets the view id
+                            to be used when switching back to the current conversation from the 
+                            conversation switcher, conversation list, or breadcrumbs.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>setDescription(String description)</literal> &#8212; sets the 
+                            description of the current conversation to be displayed in the 
+                            conversation switcher, conversation list, or breadcrumbs.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>redirect()</literal> &#8212; redirect to the last well-defined
+                            view id for this conversation (useful after login challenges).
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>leave()</literal> &#8212; exit the scope of this conversation,
+                            without actually ending the conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>begin()</literal> &#8212; begin a long-running conversation
+                            (equivalent to <literal>@Begin</literal>).
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>beginPageflow(String pageflowName)</literal> &#8212; begin a 
+                            long-running conversation with a pageflow (equivalent to 
+                            <literal>@Begin(pageflow="...")</literal>).
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>end()</literal> &#8212; end a long-running conversation
+                            (equivalent to <literal>@End</literal>).
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>pop()</literal> &#8212; pop the conversation stack, returning
+                            to the parent conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>root()</literal> &#8212; return to the root conversation of 
+                            the conversation stack.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; change 
+                            the flush mode of the conversation.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.conversationList</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the conversation list.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.conversationStack</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the conversation stack (breadcrumbs).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.switcher</literal></term>
+                <listitem>
+                    <para>
+                        The conversation switcher.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        
+        <para>
+            All of these components are always installed.
+        </para>
+
+    </section>
+    
+    <section>
+        <title>jBPM-related components</title>
+        <para>
+            These components are for use with jBPM.
+        </para>
+        
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.pageflow.pageflow</literal></term>
+                <listitem>
+                    <para>
+                        API control of Seam pageflows.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>isInProcess()</literal> &#8212; returns <literal>true</literal>
+                            if there is currently a pageflow in process
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>getProcessInstance()</literal> &#8212; returns jBPM
+                            <literal>ProcessInstance</literal> for the current pageflow
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>begin(String pageflowName)</literal> &#8212; begin a pageflow
+                            in the context of the current conversation
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>reposition(String nodeName)</literal> &#8212; reposition the
+                            current pageflow to a particular node
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.actor</literal></term>
+                <listitem>
+                    <para>
+                        API for application control of attributes of the jBPM actor associated
+                        with the current session.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>setId(String actorId)</literal> &#8212; sets the jBPM
+                            actor id of the current user.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>getGroupActorIds()</literal> &#8212; returns a 
+                            <literal>Set</literal> to which jBPM actor ids for the
+                            current users groups may be added.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.transition</literal></term>
+                <listitem>
+                    <para>
+                        API for application control of the jBPM transition for the current
+                        task.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>setName(String transitionName)</literal> &#8212; sets the 
+                            jBPM transition name to be used when the current task is ended
+                            via <literal>@EndTask</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.businessProcess</literal></term>
+                <listitem>
+                    <para>
+                        API for programmatic control of the association between the
+                        conversation and business process.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>businessProcess.taskId</literal> &#8212; the id of the task 
+                            associated with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>businessProcess.processId</literal> &#8212; the id of the process
+                            associated with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task
+                            instance associated with the current conversation?
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process
+                            instance associated with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>createProcess(String name)</literal> &#8212; create an
+                            instance of the named process definition and associate it with
+                            the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>startTask()</literal> &#8212; start the task 
+                            associated with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>endTask(String transitionName)</literal> &#8212; end the task 
+                            associated with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>resumeTask(Long id)</literal> &#8212; associate the task with
+                            the given id with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>resumeProcess(Long id)</literal> &#8212; associate the process 
+                            with the given id with the current conversation.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>transition(String transitionName)</literal> &#8212; trigger
+                            the transition.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.taskInstance</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the jBPM <literal>TaskInstance</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.processInstance</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the jBPM <literal>ProcessInstance</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.jbpmContext</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for an event-scoped <literal>JbpmContext</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.taskInstanceList</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the jBPM task list.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.pooledTaskInstanceList</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the jBPM pooled task list.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.taskInstanceListForType</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the jBPM task lists.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.pooledTask</literal></term>
+                <listitem>
+                    <para>
+                        Action handler for pooled task assignment.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.processInstanceFinder</literal></term>
+                <listitem>
+                    <para>
+                        Manager for the process instance task list.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.processInstanceList</literal></term>
+                <listitem>
+                    <para>
+                         The process instance task list.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        
+        <para>
+            All of these components are installed whenever the component
+            <literal>org.jboss.seam.bpm.jbpm</literal> is installed.
+        </para>
+        
+    </section>
+    
+    <section>
+        <title>Security-related components</title>
+        <para>
+            These components relate to web-tier security.
+        </para>
+        
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.web.userPrincipal</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for the current user <literal>Principal</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.web.isUserInRole</literal></term>
+                <listitem>
+                    <para>
+                        Allows JSF pages to choose to render a control, depending upon
+                        the roles available to the current principal.
+                        <literal>&lt;h:commandButton value="edit" rendered="#{isUserInRole['admin']}"/&gt;</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </section>
+    
+    <section>
+        <title>JMS-related components</title>
+        <para>
+            These components are for use with managed <literal>TopicPublisher</literal>s
+            and <literal>QueueSender</literal>s (see below).
+        </para>
+        
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.jms.queueSession</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a JMS <literal>QueueSession</literal> .
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.jms.topicSession</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a JMS <literal>TopicSession</literal> .
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </section>     
+    
+    <section id="components.mail">
+        <title>Mail-related components</title>
+        <para>
+            These components are for use with Seam's Email support 
+        </para>
+        
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.mail.mailSession</literal></term>
+                <listitem>
+                    <para>
+                        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. 
+                    </para>
+                     <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.host</literal> &#8212; the hostname of the SMTP server to use
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.port</literal> &#8212; the port of the SMTP server to use
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.username</literal> &#8212;  the username to use to connect to the SMTP server.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.password</literal> &#8212; the password to use to connect to the SMTP server
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.debug</literal> &#8212; enable JavaMail debugging (very verbose)
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; enable SSL connection to SMTP (will default to port 465)
+                        </para>
+                         <para>
+                            <literal>org.jboss.seam.mail.mailSession.tls</literal> &#8212; by default true, enable TLS support in the mail session
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> &#8212; name under which a javax.mail.Session is bound to JNDI.
+                            If supplied, all other properties will be ignored.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </section>
+    
+    <section>
+        <title>Infrastructural components</title>
+        <para>
+            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>.
+        </para>
+        
+    	<variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.init</literal></term>
+                <listitem>
+                    <para>
+                        Initialization settings for Seam. Always installed.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.init.jndiPattern</literal> &#8212; the JNDI
+                            pattern used for looking up session beans
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.init.debug</literal> &#8212; 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.
+                        </para>
+                        </listitem>
+<!--                        <listitem>-->
+<!--                        <para>-->
+<!--                            <literal>org.jboss.seam.core.init.clientSideConversations</literal> &#8212; -->
+<!--                            if set to <literal>true</literal>, Seam will save conversation context-->
+<!--                            variables in the client instead of in the <literal>HttpSession</literal>.-->
+<!--                        </para>-->
+<!--                        </listitem>-->
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.init.userTransactionName</literal> &#8212; the JNDI
+                            name to use when looking up the JTA <literal>UserTransaction</literal> object.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.manager</literal></term>
+                <listitem>
+                    <para>
+                        Internal component for Seam page and conversation context management. 
+                        Always installed.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.manager.conversationTimeout</literal> &#8212; 
+                            the conversation context timeout in milliseconds.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> &#8212; 
+                            maximum wait time for a thread attempting to gain a lock on the long-running 
+                            conversation context.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.manager.conversationIdParameter</literal> &#8212; 
+                            the request parameter used to propagate the conversation id, default
+                            to <literal>conversationId</literal>.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</literal> &#8212; 
+                            the request parameter used to propagate information about whether the conversation
+                            is long-running, default to <literal>conversationIsLongRunning</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.navigation.pages</literal></term>
+                <listitem>
+                    <para>
+                        Internal component for Seam workspace management. Always installed.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> 
+                            &#8212; global setting for the view id to redirect to when a 
+                            conversation entry is not found on the server side.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.navigation.pages.loginViewId</literal> 
+                            &#8212; global setting for the view id to redirect to when an 
+                            unauthenticated user tries to access a protected view.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.navigation.pages.httpPort</literal> 
+                            &#8212; global setting for the port to use when the http scheme 
+                            is requested.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.navigation.pages.httpsPort</literal> 
+                            &#8212; global setting for the port to use when the https scheme 
+                            is requested.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.navigation.pages.resources</literal> 
+                            &#8212; a list of resources to search for <literal>pages.xml</literal>
+                            style resources.  Defaults to <literal>WEB-INF/pages.xml</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.bpm.jbpm</literal></term>
+                <listitem>
+                    <para>
+                        Bootstraps a <literal>JbpmConfiguration</literal>. Install as class 
+                        <literal>org.jboss.seam.bpm.Jbpm</literal>. 
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> &#8212; 
+                            a list of resource names of jPDL files to be used for orchestration
+                            of business processes.
+                        </para>
+                        </listitem>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> &#8212; 
+                            a list of resource names of jPDL files to be used for orchestration
+                            of conversation page flows.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.conversationEntries</literal></term>
+                <listitem>
+                    <para>
+                        Internal session-scoped component recording the active long-running conversations
+                        between requests.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.facesPage</literal></term>
+                <listitem>
+                    <para>
+                        Internal page-scoped component recording the conversation context associated
+                        with a page.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.persistence.persistenceContexts</literal></term>
+                <listitem>
+                    <para>
+                        Internal component recording the persistence contexts which were used in
+                        the current conversation.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.jms.queueConnection</literal></term>
+                <listitem>
+                    <para>
+                        Manages a JMS <literal>QueueConnection</literal>. Installed whenever
+                        managed managed <literal>QueueSender</literal> is installed.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</literal> 
+                            &#8212; the JNDI name of a JMS <literal>QueueConnectionFactory</literal>. Default
+                            to <literal>UIL2ConnectionFactory</literal>
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.jms.topicConnection</literal></term>
+                <listitem>
+                    <para>
+                        Manages a JMS <literal>TopicConnection</literal>. Installed whenever
+                        managed managed <literal>TopicPublisher</literal> is installed.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</literal> 
+                            &#8212; the JNDI name of a JMS <literal>TopicConnectionFactory</literal>. Default
+                            to <literal>UIL2ConnectionFactory</literal>
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.persistence.persistenceProvider</literal></term>
+                <listitem>
+                    <para>
+                        Abstraction layer for non-standardized features of JPA provider.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.validators</literal></term>
+                <listitem>
+                    <para>
+                        Caches instances of Hibernate Validator <literal>ClassValidator</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.faces.validation</literal></term>
+                <listitem>
+                    <para>
+                        Allows the application to determine whether validation
+                        failed or was successful.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.debug.introspector</literal></term>
+                <listitem>
+                    <para>
+                        Support for the Seam Debug Page.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.debug.contexts</literal></term>
+                <listitem>
+                    <para>
+                        Support for the Seam Debug Page.
+                    </para>
+                </listitem>
+            </varlistentry>    	    
+            <varlistentry>
+                <term><literal>org.jboss.seam.exception.exceptions</literal></term>
+                <listitem>
+                    <para>
+                        Internal component for exception handling.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><literal>org.jboss.seam.transaction.transaction</literal></term>
+                <listitem>
+                    <para>
+                         API for controlling transactions and abstracting the underlying
+                         transaction management implementation behind a JTA-compatible
+                         interface.
+                    </para>
+                </listitem>
+            </varlistentry>
+             <varlistentry>
+                <term><literal>org.jboss.seam.faces.safeActions</literal></term>
+                <listitem>
+                    <para>
+                        Decides if an action expression in an incoming URL is safe.  This 
+                        is done by checking that the action expression exists in the view.
+                    </para>
+                </listitem>
+             </varlistentry>
+    	</variablelist>
+   </section>
+
+     <section>
+        <title>Miscellaneous components</title>
+        <para>
+            These components don't fit into 
+        </para>
+        
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.async.dispatcher</literal></term>
+                <listitem>
+                    <para>
+                        Dispatcher stateless session bean for asynchronous methods.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+         
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.image</literal></term>
+                <listitem>
+                    <para>
+                         Image manipulation and interrogation.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+         
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.pojoCache</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a PojoCache instance.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+         
+        <variablelist>
+            <varlistentry>
+                <term><literal>org.jboss.seam.core.uiComponent</literal></term>
+                <listitem>
+                    <para>
+                        Manages a map of UIComponents keyed by component id.
+                    </para>
+                </listitem>
+            </varlistentry>
+         </variablelist>
+         
+         
+         
+    </section>
+    
+    <section>
+        <title>Special components</title>
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<component name="bookingDatabase"
+          class="org.jboss.seam.persistence.ManagedPersistenceContext">
+    <property name="persistenceUnitJndiName">java:/comp/emf/bookingPersistence</property>
+</component>
+
+<component name="userDatabase"
+          class="org.jboss.seam.persistence.ManagedPersistenceContext">
+    <property name="persistenceUnitJndiName">java:/comp/emf/userPersistence</property>
+</component>]]></programlisting>
+        
+        <para>
+            The Seam component names are <literal>bookingDatabase</literal> and 
+            <literal>userDatabase</literal>.
+        </para>
+        
+    	<variablelist>
+            <varlistentry>
+                <term><emphasis>&lt;entityManager&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.persistence.ManagedPersistenceContext</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a conversation scoped managed <literal>EntityManager</literal>
+                        with an extended persistence context.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;entityManager&gt;</emphasis>.entityManagerFactory 
+                            &#8212; a value binding expression that evaluates to an instance of 
+                            <literal>EntityManagerFactory</literal>.
+                        </para>
+                        <para>
+                           <emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName 
+                            &#8212; the JNDI name of the entity manager factory, default to 
+                            java:/<emphasis>&lt;managedPersistenceContext&gt;</emphasis>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;entityManagerFactory&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.persistence.EntityManagerFactory</literal></term>
+                <listitem>
+                    <para>
+                        Manages a JPA <literal>EntityManagerFactory</literal>. This is most useful
+                        when using JPA outside of an EJB 3.0 supporting environment.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>entityManagerFactory.persistenceUnitName</literal> &#8212; 
+                            the name of the persistence unit.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                    <para>
+                        See the API JavaDoc for further configuration properties.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;session&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.persistence.ManagedSession</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a conversation scoped managed Hibernate <literal>Session</literal>.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;session&gt;</emphasis>.sessionFactory 
+                            &#8212; a value binding expression that evaluates to an instance of 
+                            <literal>SessionFactory</literal>.
+                        </para>
+                        <para>
+                           <emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName 
+                            &#8212; the JNDI name of the session factory, default to 
+                            java:/<emphasis>&lt;managedSession&gt;</emphasis>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;sessionFactory&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.persistence.HibernateSessionFactory</literal></term>
+                <listitem>
+                    <para>
+                        Manages a Hibernate <literal>SessionFactory</literal>.  
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                            <literal>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; 
+                            the path to the configuration file. Default to <literal>hibernate.cfg.xml</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                    <para>
+                        See the API JavaDoc for further configuration properties.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;managedQueueSender&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.jms.ManagedQueueSender</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for an event scoped managed JMS <literal>QueueSender</literal>.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;managedQueueSender&gt;</emphasis>.queueJndiName 
+                            &#8212; the JNDI name of the JMS queue.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;managedTopicPublisher&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.jms.ManagedTopicPublisher</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for an event scoped managed JMS <literal>TopicPublisher</literal>.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName 
+                            &#8212; the JNDI name of the JMS topic.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;managedWorkingMemory&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.drools.ManagedWorkingMemory</literal></term>
+                <listitem>
+                    <para>
+                        Manager component for a conversation scoped managed Drools <literal>WorkingMemory</literal>.
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase 
+                            &#8212; a value expression that evaluates to an instance of <literal>RuleBase</literal>.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><emphasis>&lt;ruleBase&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.drools.RuleBase</literal></term>
+                <listitem>
+                    <para>
+                        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>
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                        <para>
+                           <emphasis>&lt;ruleBase&gt;</emphasis>.ruleFiles 
+                            &#8212; a list of files containing Drools rules.
+                        </para>
+                        <para>
+                           <emphasis>&lt;ruleBase&gt;</emphasis>.dslFile 
+                            &#8212; a Drools DSL definition.
+                        </para>
+                        </listitem>
+                    </itemizedlist>
+                </listitem>
+            </varlistentry>
+       <!--     <varlistentry>
+                <term><emphasis>&lt;entityHome&gt;</emphasis></term>
+                <term><literal>org.jboss.seam.framework.EntityHome</literal></term> -->
+              <!--    <listitem> 
+			  <para></para> -->
+                     <!-- TODO: Document this -->
+             <!--     </listitem> -->
+     <!--     </varlistentry> -->
+<!--      <varlistentry> 
+                <term><emphasis>&lt;hibernateEntityHome&gt;</emphasis></term>
+		<term><literal>org.jboss.seam.framework.HibernateEntityHome</literal></term> -->
+		<!--    <listitem> 
+			<para></para> -->
+                  <!-- TODO: Document this -->
+		  <!--  </listitem> -->
+	  <!--      </varlistentry> -->
+	    <!--     <varlistentry> 
+                <term><emphasis>&lt;entityQuery&gt;</emphasis></term>
+		<term><literal>org.jboss.seam.framework.EntityQuery</literal></term> -->
+		<!--   <listitem> 
+			<para></para> -->
+                  <!-- TODO: Document this -->
+		  <!--   </listitem> -->
+	  <!--        </varlistentry> -->
+	    <!--      <varlistentry>
+                <term><emphasis>&lt;hibernateEntityQuery&gt;</emphasis></term>
+		<term><literal>org.jboss.seam.framework.HibernateEntityQuery</literal></term> -->
+		<!--   <listitem>
+			<para></para> -->
+                  <!-- TODO: Document this -->
+		  <!--   </listitem> -->
+	  <!--   </varlistentry> -->
+        </variablelist>
+    </section>
+    
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Components.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Concepts.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Concepts.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Concepts.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="concepts">
+    <title>The contextual component model</title>
+    <para> 
+        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.
+    </para>
+    
+    <para>
+        Let's start by describing the contexts built in to Seam.
+    </para>
+
+    <sect1>
+        <title>Seam contexts</title>
+        <para> 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. </para>
+        <para> The basic Seam contexts are: </para>
+
+        <itemizedlist>
+            <listitem>
+                <para> Stateless context </para>
+            </listitem>
+            <listitem>
+                <para> Event (or request) context </para>
+            </listitem>
+            <listitem>
+                <para> Page context </para>
+            </listitem>
+            <listitem>
+                <para> Conversation context </para>
+            </listitem>
+            <listitem>
+                <para> Session context </para>
+            </listitem>
+            <listitem>
+                <para> Business process context </para>
+            </listitem>
+            <listitem>
+                <para> Application context </para>
+            </listitem>
+        </itemizedlist>
+
+        <para> 
+            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.
+        </para>
+
+        <para>
+            Let's look at each context in turn.
+        </para>
+
+        <sect2>
+            <title>Stateless context</title>
+            <para>
+                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.
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Event context</title>
+            <para>
+                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.
+            </para>
+            <para> 
+                When you invoke a Seam component via RMI, or Seam Remoting, the event context is created and
+                destroyed just for the invocation.
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Page context</title>
+            <para>
+                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.
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Conversation context</title>
+            <para>
+                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.
+            </para>
+            <para>
+                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.
+            </para>
+            <para>
+                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!
+            </para>
+            <para>
+                Some conversations last for just a single request. Conversations that span multiple requests must be
+                demarcated using annotations provided by Seam.
+            </para>
+            <para>
+                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.
+            </para>
+            <para>
+                Conversations may be <emphasis>nested</emphasis>, with one conversation taking place "inside" a wider
+                conversation. This is an advanced feature.
+            </para>
+            <para>
+                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.
+            </para>
+            <para>
+                Seam serializes processing of concurrent requests that take place in the same long-running
+                conversation context, in the same process.
+            </para>
+            <para>
+                Alternatively, Seam may be configured to keep conversational state in the client browser.
+            </para> 
+        </sect2>
+
+        <sect2>
+            <title>Session context</title>
+            <para>
+                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.
+            </para>
+            <para> 
+                In a JSR-168 portal environment, the session context represents the portlet session. 
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Business process context</title>
+            <para> 
+                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. 
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Application context</title>
+            <para> 
+                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. 
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Context variables</title>
+            <para> 
+                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. 
+            </para>
+
+            <para> 
+                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: 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[User user = (User) Contexts.getSessionContext().get("user");]]></programlisting>
+
+            <para>
+                You may also set or change the value associated with a name: 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[Contexts.getSessionContext().set("user", user);]]></programlisting>
+
+            <para> 
+                Usually, however, we obtain components from a context via injection, and put component instances into
+                a context via outjection. 
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Context search priority</title>
+            <para> 
+                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: 
+            </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para> Event context </para>
+                </listitem>
+                <listitem>
+                    <para> Page context </para>
+                </listitem>
+                <listitem>
+                    <para> Conversation context </para>
+                </listitem>
+                <listitem>
+                    <para> Session context </para>
+                </listitem>
+                <listitem>
+                    <para> Business process context </para>
+                </listitem>
+                <listitem>
+                    <para> Application context </para>
+                </listitem>
+            </itemizedlist>
+
+            <para> 
+                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. 
+            </para>
+
+        </sect2>
+
+        <sect2 id="concurrency">
+            <title>Concurrency model</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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.
+            </para>
+        </sect2>
+
+    </sect1>
+
+    <sect1>
+        <title>Seam components</title>
+        <para> 
+            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>. 
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para> EJB 3.0 stateless session beans </para>
+            </listitem>
+            <listitem>
+                <para> EJB 3.0 stateful session beans </para>
+            </listitem>
+            <listitem>
+                <para> EJB 3.0 entity beans </para>
+            </listitem>
+            <listitem>
+                <para> JavaBeans </para>
+            </listitem>
+            <listitem>
+                <para> EJB 3.0 message-driven beans </para>
+            </listitem>
+        </itemizedlist>
+
+        <sect2>
+            <title>Stateless session beans</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                Stateless session beans always live in the stateless context. 
+            </para>
+            <para> 
+                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). 
+            </para>
+            <para> 
+                Stateless session beans are the least interesting kind of Seam component. 
+            </para> 
+            <para>
+                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.
+            </para> 
+        </sect2>
+
+        <sect2>
+            <title>Stateful session beans</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                By default, stateful session beans are bound to the conversation context. They may never be bound to
+                the page or stateless contexts. 
+            </para>
+            <para> 
+                Concurrent requests to session-scoped stateful session beans are always serialized by Seam. 
+            </para>   
+            <para>
+                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.
+            </para> 
+        </sect2>
+
+        <sect2>
+            <title>Entity beans</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                Entity bean components do not support bijection or context demarcation. Nor does invocation of an
+                entity bean trigger validation. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para>
+                By default, entity beans are bound to the conversation context. They may never be bound to the
+                stateless context. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para>
+                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.
+            </para> 
+        </sect2>
+
+        <sect2>
+            <title>JavaBeans</title>
+            <para> 
+                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). 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                By default, JavaBeans are bound to the event context. 
+            </para>
+            <para> 
+                Concurrent requests to session-scoped JavaBeans are always serialized by Seam. 
+            </para>
+            <para>
+                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.
+            </para> 
+        </sect2>
+
+        <sect2>
+            <title>Message-driven beans</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para>
+                Message-driven beans are never instantiated by the application. They are instantiated by the EJB
+                container when a message is received.
+            </para>
+        </sect2>
+
+        <sect2>
+            <title>Interception</title>
+            <para> 
+                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: 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Stateless
+ at Interceptors(SeamInterceptor.class)
+public class LoginAction implements Login { 
+    ... 
+}]]></programlisting>
+
+            <para> 
+                But a much better way is to define the interceptor in <literal>ejb-jar.xml</literal>. 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<interceptors>
+   <interceptor>
+      <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+   </interceptor>
+</interceptors>
+   
+<assembly-descriptor>
+   <interceptor-binding>
+      <ejb-name>*</ejb-name>
+      <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+   </interceptor-binding>
+</assembly-descriptor>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Component names</title>
+            <para> 
+                All seam components need a name. We can assign a name to a component using the
+                <literal>@Name</literal> annotation: 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    ... 
+}]]></programlisting>
+
+            <para> 
+                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. 
+            </para>
+
+            <para>
+                <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.
+            </para>
+
+            <para> 
+                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. 
+            </para>
+
+            <para> 
+                For very large applications, and for built-in seam components, qualified names are often used. 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("com.jboss.myapp.loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    ... 
+}]]></programlisting>
+
+            <para> 
+                We may use the qualified component name both in Java code and in JSF's expression language: 
+            </para>
+
+            <programlisting role="XHTML"><![CDATA[<h:commandButton type="submit" value="Login"
+                 action="#{com.jboss.myapp.loginAction.login}"/>]]></programlisting>
+
+            <para> 
+                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: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<factory name="loginAction" scope="STATELESS" value="#{com.jboss.myapp.loginAction}"/>]]></programlisting>
+
+            <para> 
+                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. 
+            </para>
+
+        </sect2>
+
+        <sect2>
+            <title>Defining the component scope</title>
+            <para> 
+                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. 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("user")
+ at Entity
+ at Scope(SESSION)
+public class User { 
+    ... 
+}]]></programlisting>
+
+            <para>
+                <literal>org.jboss.seam.ScopeType</literal> defines an enumeration of possible scopes.
+            </para>
+
+        </sect2>
+
+        <sect2>
+            <title>Components with multiple roles</title>
+            <para> 
+                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&#8212;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.) 
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("user")
+ at Entity
+ at Scope(CONVERSATION)
+ at Role(name="currentUser", scope=SESSION)
+public class User { 
+    ... 
+}]]></programlisting>
+
+            <para>
+                The <literal>@Roles</literal> annotation lets us specify as many additional roles as we like.
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("user")
+ at Entity
+ at Scope(CONVERSATION)
+ at Roles({@Role(name="currentUser", scope=SESSION),
+        @Role(name="tempUser", scope=EVENT)})
+public class User { 
+    ... 
+}]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Built-in components</title>
+            <para>
+                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.
+            </para>
+            <para> 
+                The built-in components may be injected, just like any Seam components, but they also provide
+                convenient static <literal>instance()</literal> methods: 
+            </para>
+            <programlisting role="JAVA"><![CDATA[FacesMessages.instance().add("Welcome back, #{user.name}!");]]></programlisting>
+        </sect2>
+
+    </sect1>
+
+    <sect1>
+        <title>Bijection</title>
+        <para>
+            <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: 
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <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)
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <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 
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <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 
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para> 
+            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.
+        </para>
+
+        <para> 
+            The <literal>@In</literal> annotation specifies that a value should be injected, either into an instance
+            variable: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    @In User user;
+    ... 
+}]]></programlisting>
+
+        <para> 
+            or into a setter method: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    User user;
+    
+    @In
+    public void setUser(User user) {
+        this.user=user;
+    }
+    
+    ... 
+}]]></programlisting>
+
+
+        <para> 
+            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>. 
+        </para>
+
+        <para> 
+            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>. 
+        </para>
+        
+        <para>
+            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>.
+        </para>
+
+        <para> 
+            You can even inject the value of an expression: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    @In("#{user.username}") String username;
+    ... 
+}]]></programlisting>
+
+        <para>
+            Injected values are disinjected (i.e, set to <literal>null</literal>) immediately after method 
+            completion and outjection.
+        </para>
+        
+        <para> 
+            (There is much more information about component lifecycle and injection in the next chapter.) 
+        </para>
+
+        <para> 
+            The <literal>@Out</literal> annotation specifies that an attribute should be outjected, either from an
+            instance variable: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    @Out User user;
+    ... 
+}]]></programlisting>
+
+        <para> 
+            or from a getter method: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    User user;
+    
+    @Out
+    public User getUser() {
+        return user;
+    }
+    
+    ... 
+}]]></programlisting>
+
+        <para> 
+            An attribute may be both injected and outjected: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    @In @Out User user;
+    ... 
+}]]></programlisting>
+
+        <para> 
+            or: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("loginAction")
+ at Stateless
+public class LoginAction implements Login { 
+    User user;
+    
+    @In
+    public void setUser(User user) {
+        this.user=user;
+    }
+    
+    @Out
+    public User getUser() {
+        return user;
+    }
+    
+    ... 
+}]]></programlisting>
+
+    </sect1>
+
+    <sect1>
+        <title>Lifecycle methods</title>
+        
+        <para> 
+            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>.
+        </para>
+        
+        <para> 
+            The <literal>@Create</literal> method is called after Seam instantiates a component. 
+            Components may define only one <literal>@Create</literal> method. 
+        </para>
+        
+        <para> 
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para> 
+            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>. 
+        </para>
+        
+    </sect1>
+    
+    <sect1>
+        <title>Conditional installation</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <itemizedlist>
+        	<listitem>
+        		<para>
+        		    You want to mock out some infrastructural component in tests.
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    You want change the implementation of a component in certain
+        		    deployment scenarios.
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    You want to install some components only if their dependencies are
+        		    available (useful for framework authors).
+        		</para>
+        	</listitem>
+        </itemizedlist>
+        
+        <para>
+            <literal>@Install</literal> works by letting you specify <emphasis>precedence</emphasis>
+            and <emphasis>dependencies</emphasis>. 
+        </para>
+        
+        <para>
+            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):
+        </para>
+        
+        <orderedlist>
+        	<listitem>
+        		<para>
+        		    <literal>BUILT_IN</literal> &#8212; the lowest precedece components are
+        		    the components built in to Seam. 
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    <literal>FRAMEWORK</literal> &#8212; components defined by third-party 
+        		    frameworks may override built-in components, but are overridden by
+        		    application components. 
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    <literal>APPLICATION</literal> &#8212; the default precedence. This is 
+                    appropriate for most application components.
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    <literal>DEPLOYMENT</literal> &#8212; for application components which
+        		    are deployment-specific. 
+        		</para>
+        	</listitem>
+        	<listitem>
+        		<para>
+        		    <literal>MOCK</literal> &#8212; for mock objects used in testing. 
+        		</para>
+        	</listitem>
+        </orderedlist>
+        
+        <para>
+            Suppose we have a component named <literal>messageSender</literal> that talks to
+            a JMS queue. 
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("messageSender") 
+public class MessageSender {
+    public void sendMessage() {
+        //do something with JMS
+    }
+}]]></programlisting>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("messageSender") 
+ at Install(precedence=MOCK)
+public class MockMessageSender extends MessageSender {
+    public void sendMessage() {
+        //do nothing!
+    }
+}]]></programlisting>
+
+        <para>
+            The <literal>precedence</literal> helps Seam decide which version to use when it finds
+            both components in the classpath.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+    </sect1>
+
+    <sect1>
+        <title>Logging</title>
+        
+        <para> 
+            Who is not totally fed up with seeing noisy code like this? 
+         </para>
+
+        <programlisting role="JAVA"><![CDATA[private static final Log log = LogFactory.getLog(CreateOrderAction.class);
+        
+public Order createOrder(User user, Product product, int quantity) {
+    if ( log.isDebugEnabled() ) {
+        log.debug("Creating new order for user: " + user.username() + 
+            " product: " + product.name() 
+            + " quantity: " + quantity);
+    }
+    return new Order(user, product, quantity);
+}]]></programlisting>
+
+        <para> 
+            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. 
+        </para>
+
+        <para> 
+            Seam provides a logging API that simplifies this code significantly: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Logger private Log log;
+        
+public Order createOrder(User user, Product product, int quantity) {
+    log.debug("Creating new order for user: #0 product: #1 quantity: #2", user.username(), product.name(), quantity);
+    return new Order(user, product, quantity);
+}]]></programlisting>
+
+        <para>
+            It doesn't matter if you declare the <literal>log</literal> variable static or not&#8212;it will work 
+            either way, except for entity bean components which require the <literal>log</literal> variable to be
+            static.
+        </para>
+
+        <para> 
+            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. 
+        </para>
+        
+        <!-- Lets not document this now, cos we should migrate to use the printf format
+        <para>
+            You can use <literal>java.text.MessageFormat</literal> formatted strings:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[log.debug("The time is {0,time}", new Date());]]></programlisting>
+        -->
+
+        <para> 
+            If <literal>User</literal> and <literal>Product</literal> are Seam components available in the current
+            contexts, it gets even better: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Logger private Log log;
+        
+public Order createOrder(User user, Product product, int quantity) {
+    log.debug("Creating new order for user: #{user.username} product: #{product.name} quantity: #0", quantity);
+    return new Order(user, product, quantity);
+}]]></programlisting>
+
+        <para>
+            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.
+        </para>
+
+    </sect1>
+
+    <sect1>
+        <title>The <literal>Mutable</literal> interface and <literal>@ReadOnly</literal></title>
+        <para> 
+            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. 
+        </para>
+
+        <para> 
+            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. 
+        </para>
+
+        <para> 
+            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, 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("account")
+public class Account extends AbstractMutable
+{
+    private BigDecimal balance;
+    
+    public void setBalance(BigDecimal balance)
+    {
+        setDirty(this.balance, balance);
+        this.balance = balance;
+    }
+    
+    public BigDecimal getBalance()
+    {
+        return balance;
+    }
+    
+    ...
+    
+}]]></programlisting>
+
+        <para> 
+            Or, you can use the <literal>@ReadOnly</literal> annotation to achieve a similar effect: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("account")
+public class Account
+{
+    private BigDecimal balance;
+    
+    public void setBalance(BigDecimal balance)
+    {
+        this.balance = balance;
+    }
+    
+    @ReadOnly
+    public BigDecimal getBalance()
+    {
+        return balance;
+    }
+    
+    ...
+    
+}]]></programlisting>
+
+        <para> 
+            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, 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("account")
+public class AccountManager extends AbstractMutable
+{
+    private Account account; // an entity bean
+    
+    @Unwrap
+    public void getAccount()
+    {
+        return account;
+    }
+    
+    ...
+    
+}]]></programlisting>
+
+        <para> 
+            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. 
+        </para>
+
+    </sect1>
+
+    <sect1>
+        <title>Factory and manager components</title>
+        <para> 
+            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. 
+        </para>
+
+        <para> 
+            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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Factory(scope=CONVERSATION)
+public List<Customer> getCustomerList() { 
+    return ... ;
+} ]]></programlisting>
+
+        <para> 
+            The second style is a method of type <literal>void</literal> which binds the value to the context
+            variable itself: 
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@DataModel List<Customer> customerList;
+
+ at Factory("customerList")
+public void initCustomerList() { 
+    customerList = ...  ;
+} ]]></programlisting>
+
+        <para> 
+            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. 
+        </para>
+
+        <para> 
+            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. 
+        </para>
+        
+
+
+        <programlisting role="JAVA"><![CDATA[@Name("customerList")
+ at Scope(CONVERSATION)
+public class CustomerListManager
+{
+    ...
+    
+    @Unwrap
+    public List<Customer> getCustomerList() { 
+        return ... ;
+    }
+}]]></programlisting>
+
+        <para> 
+            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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("hens")
+ at Scope(APPLICATION) 
+public class HenHouse {
+    
+    Set<Hen> hens;
+    
+    @In(required=false) Hen hen;
+    
+    @Unwrap
+    public List<Hen> getHens() {
+        if (hens == null) {
+            // Setup our hens
+        }
+        return hens;
+    }
+    
+    @Observer({"chickBorn", "chickenBoughtAtMarket"})
+    public addHen() {
+        hens.add(hen);
+    }
+    
+    @Observer("chickenSoldAtMarket")
+    public removeHen() {
+        hens.remove(hen);
+    }
+    
+    @Observer("foxGetsIn")
+    public removeAllHens() {
+        hens.clear();
+    }
+    ...
+}]]> </programlisting>
+
+	<para>
+		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.
+	</para>
+
+    </sect1>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Concepts.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Configuration.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Configuration.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Configuration.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,852 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="configuration">
+    <title>Configuring Seam and packaging Seam applications</title>
+    <para> Configuration is a very boring topic and an extremely tedious pastime. Unfortunately, several lines of XML
+        are required to integrate Seam into your JSF implementation and servlet container. There's no need to be too put
+        off by the following sections; you'll never need to type any of this stuff yourself, since you can just copy and
+        paste from the example applications! </para>
+
+    <sect1>
+        <title>Basic Seam configuration</title>
+
+        <para> First, let's look at the basic configuration that is needed whenever we use Seam with JSF. </para>
+
+        <sect2>
+            <title>Integrating Seam with JSF and your servlet container</title>
+
+            <para> Of course, you need a faces servlet! </para>
+
+            <programlisting role="XML"><![CDATA[<servlet>
+    <servlet-name>Faces Servlet</servlet-name>
+    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+    <load-on-startup>1</load-on-startup>
+</servlet>
+
+<servlet-mapping>
+    <servlet-name>Faces Servlet</servlet-name>
+    <url-pattern>*.seam</url-pattern>
+</servlet-mapping>]]></programlisting>
+
+            <para> (You can adjust the URL pattern to suit your taste.) </para>
+
+            <para> In addition, Seam requires the following entry in your <literal>web.xml</literal> file: </para>
+
+            <programlisting role="XML"><![CDATA[<listener>
+    <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+</listener>]]></programlisting>
+
+            <para> This listener is responsible for bootstrapping Seam, and for destroying session and application
+                contexts. </para>
+
+            <para> Some JSF implementations have a broken implementation of server-side state saving that interferes
+                with Seam's conversation propagation. If you have problems with conversation propagation during form
+                submissions, try switching to client-side state saving. You'll need this in <literal>web.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<context-param>
+    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+    <param-value>client</param-value>
+</context-param>]]></programlisting>	
+
+            <para>
+                    There is a minor gray area in the JSF specification regarding the mutability of view state values. Since
+                    Seam uses the JSF view state to back its PAGE scope this can become an issue in some cases. If you're
+                    using server side state saving with the JSF-RI and you want a PAGE scoped bean to keep its exact value
+                    for a given view of a page you will need to specify the following context-param. Otherwise if a user
+                    uses the "back" button a PAGE scoped component will have the latest value if it has changed not the
+                    value of the "back" page. (see
+                    <ulink url="https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=295">
+                            Spec Issue
+                    </ulink>
+                    ). This setting is not enabled by default because of the performance hit of serializing the JSF view
+                    with every request.
+            </para>
+                        <programlisting role="XML"><![CDATA[<context-param>
+        <param-name>com.sun.faces.serializeServerState</param-name>
+        <param-value>true</param-value>
+</context-param>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Using facelets</title>
+
+            <para> If you want follow our advice and use facelets instead of JSP, add the following lines to
+                    <literal>faces-config.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<application>
+    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+</application>]]></programlisting>
+
+            <para> And the following lines to <literal>web.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<context-param>
+    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+    <param-value>.xhtml</param-value>
+</context-param>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Seam Resource Servlet</title>
+
+            <para> The Seam Resource Servlet provides resources used by Seam Remoting, captchas (see the security
+                chapter) and some JSF UI controls. Configuring the Seam Resource Servlet requires the following entry in
+                    <literal>web.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<servlet>
+  <servlet-name>Seam Resource Servlet</servlet-name>
+  <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+</servlet>
+    
+<servlet-mapping>
+  <servlet-name>Seam Resource Servlet</servlet-name>
+  <url-pattern>/seam/resource/*</url-pattern>
+</servlet-mapping>]]></programlisting>
+        </sect2>
+
+        <sect2>
+            <title>Seam servlet filters</title>
+
+            <para> Seam doesn't need any servlet filters for basic operation. However, there are several features which
+                depend upon the use of filters. To make things easier, Seam lets you add and configure
+                servlet filters just like you would configure other built-in Seam components. To take advantage of this
+                feature, we must first install a master filter in <literal>web.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<filter>
+    <filter-name>Seam Filter</filter-name>
+    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+</filter>
+
+<filter-mapping>
+    <filter-name>Seam Filter</filter-name>
+    <url-pattern>/*</url-pattern>
+</filter-mapping>]]></programlisting>
+
+            <para>The Seam master filter <emphasis>must</emphasis> be the first filter specified in
+                <literal>web.xml</literal>. This ensures it is run first. </para>
+            
+            <para>
+               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:
+            </para>
+            
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>url-pattern</literal> &#8212; 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.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>regex-url-pattern</literal> &#8212; 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. 
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>disabled</literal> &#8212; Used to disable a built in filter.
+                  </para>
+               </listitem>
+           </itemizedlist>
+
+            <para> Adding the master filter enables the following built-in filters. </para>
+
+            <sect3>
+                <title>Exception handling</title>
+                <para> This filter provides the exception mapping functionality in <literal>pages.xml</literal> (almost
+                    all applications will need this). It also takes care of rolling back uncommitted transactions when
+                    uncaught exceptions occur. (According to the Java EE specification, the web container should do this
+                    automatically, but we've found that this behavior cannot be relied upon in all application servers.
+                    And it is certainly not required of plain servlet engines like Tomcat.) </para>
+
+                <para> By default, the exception handling filter will process all requests, however this behavior may be
+                    adjusted by adding a <literal>&lt;web:exception-filter&gt;</literal> entry to
+                        <literal>components.xml</literal>, as shown in this example: </para>
+
+                <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:web="http://jboss.com/products/seam/web">
+
+    <web:exception-filter url-pattern="*.seam"/>
+
+</components>]]></programlisting>
+
+                
+            </sect3>
+
+            <sect3>
+                <title>Conversation propagation with redirects</title>
+                <para> This filter allows Seam to propagate the conversation context across browser redirects. It
+                    intercepts any browser redirects and adds a request parameter that specifies the Seam conversation
+                    identifier. </para>
+
+                <para> The redirect filter will process all requests by default, but this behavior can also be adjusted
+                    in <literal>components.xml</literal>: </para>
+
+                <programlisting role="XML"><![CDATA[<web:redirect-filter url-pattern="*.seam"/>]]></programlisting>
+            </sect3>
+
+            <sect3>
+                <title>Multipart form submissions</title>
+                <para> This feature is necessary when using the Seam file upload JSF control. It detects multipart form
+                    requests and processes them according to the multipart/form-data specification (RFC-2388). To
+                    override the default settings, add the following entry to <literal>components.xml</literal>: </para>
+
+                <programlisting role="XML"><![CDATA[<web:multipart-filter create-temp-files="true" 
+                      max-request-size="1000000" 
+                      url-pattern="*.seam"/>]]></programlisting>
+
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            <literal>create-temp-files</literal> &#8212; If set to <literal>true</literal>, uploaded
+                            files are written to a temporary file (instead of held in memory). This may be an important
+                            consideration if large file uploads are expected. The default setting is
+                            <literal>false</literal>. </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <literal>max-request-size</literal> &#8212; If the size of a file upload request
+                            (determined by reading the <literal>Content-Length</literal> header in the request) exceeds
+                            this value, the request will be aborted. The default setting is 0 (no size limit). </para>
+                    </listitem>
+                </itemizedlist>
+            </sect3>
+
+            <sect3>
+                <title>Character encoding</title>
+                <para> Sets the character encoding of submitted form data. </para>
+
+                <para> This filter is not installed by default and requires an entry in
+                    <literal>components.xml</literal> to enable it: </para>
+
+                <programlisting role="XML"><![CDATA[<web:character-encoding-filter encoding="UTF-16" 
+                               override-client="true" 
+                               url-pattern="*.seam"/>]]></programlisting>
+
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            <literal>encoding</literal> &#8212; The encoding to use. </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <literal>override-client</literal> &#8212; If this is set to <literal>true</literal>,
+                            the request encoding will be set to whatever is specified by <literal>encoding</literal> no
+                            matter whether the request already specifies an encoding or not. If set to
+                            <literal>false</literal>, the request encoding will only be set if the request doesn't
+                            already specify an encoding. The default setting is <literal>false</literal>. </para>
+                    </listitem>
+                </itemizedlist>
+            </sect3>
+
+            <sect3>
+                <title>RichFaces</title>
+
+                <para> 
+                  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.
+                </para>
+                
+                <para>
+                  The RichFaces Ajax filter is only installed if the RichFaces
+                  jars are present in your project.
+                </para>
+
+                <para> To override the default settings, add the following entry to <literal>components.xml</literal>.
+                    The options are the same as those specified in the RichFaces Developer Guide: </para>
+
+                <programlisting role="XML"><![CDATA[<web:ajax4jsf-filter force-parser="true" 
+                     enable-cache="true" 
+                     log4j-init-file="custom-log4j.xml"
+                     url-pattern="*.seam"/>]]></programlisting>
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            <literal>force-parser</literal> &#8212; 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. </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <literal>enable-cache</literal> &#8212; enables caching of framework-generated resources
+                            (e.g. javascript, CSS, images, etc). When developing custom javascript or CSS, setting to
+                            true prevents the browser from caching the resource. </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <literal>log4j-init-file</literal> &#8212; is used to setup per-application logging. A
+                            path, relative to web application context, to the log4j.xml configuration file should be
+                            provided. </para>
+                    </listitem>
+                </itemizedlist>
+
+            </sect3>
+
+             <sect3>
+                <title>Identity Logging</title>
+
+                <para> 
+                    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.                       
+                </para>
+
+                 
+                 <para> By default, the logging filter will process all requests, however this behavior may be
+                     adjusted by adding a <literal>&lt;web:logging-filter&gt;</literal> entry to
+                     <literal>components.xml</literal>, as shown in this example: </para>
+                 
+                <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:web="http://jboss.com/products/seam/web">
+    <web:logging-filter url-pattern="*.seam"/>
+</components>]]></programlisting>
+
+            </sect3>
+       
+            <sect3>
+                <title>Context management for custom servlets</title>
+                <para> Requests sent direct to some servlet other than the JSF servlet are not processed through the JSF
+                    lifecycle, so Seam provides a servlet filter that can be applied to any other servlet that needs
+                    access to Seam components. </para>
+
+                <para> This filter allows custom servlets to interact with the Seam contexts. It sets up the Seam
+                    contexts at the beginning of each request, and tears them down at the end of the request. You should
+                    make sure that this filter is <emphasis>never</emphasis> applied to the JSF
+                    <literal>FacesServlet</literal>. Seam uses the phase listener for context management in a JSF
+                    request. </para>
+
+                <para> This filter is not installed by default and requires an entry in
+                    <literal>components.xml</literal> to enable it: </para>
+
+                <programlisting role="XML"><![CDATA[<web:context-filter url-pattern="/media/*"/>]]></programlisting>
+
+                <para> The context filter expects to find the conversation id of any conversation context in a request
+                    parameter named <literal>conversationId</literal>. You are responsible for ensuring that it gets
+                    sent in the request. </para>
+
+                <para> You are also responsible for ensuring propagation of any new conversation id back to the client.
+                    Seam exposes the conversation id as a property of the built in component
+                    <literal>conversation</literal>. </para>
+
+            </sect3>
+
+            <sect3>
+                <title>Adding custom filters</title>
+                <para> Seam can install your filters for you, allowing you to specify <emphasis>where</emphasis> in the
+                    chain your filter is placed (the servlet specification doesn't provide a well defined order if you
+                    specify your filters in a <literal>web.xml</literal>). Just add the <literal>@Filter</literal>
+                    annotation to your Seam component (which must implement <literal>javax.servlet.Filter</literal>): </para>
+
+                <programlisting role="JAVA"><![CDATA[@Startup
+ at Scope(APPLICATION)
+ at Name("org.jboss.seam.web.multipartFilter")
+ at BypassInterceptors
+ at Filter(within="org.jboss.seam.web.ajax4jsfFilter")
+public class MultipartFilter extends AbstractFilter {]]></programlisting>
+
+                <para> Adding the <literal>@Startup</literal> annotation means thar the component is available during
+                    Seam startup; bijection isn't available here (<literal>@BypassInterceptors</literal>); and the filter
+                    should be further down the chain than the RichFaces filter
+                        (<literal>@Filter(within="org.jboss.seam.web.ajax4jsfFilter")</literal>). </para>
+
+            </sect3>
+        </sect2>
+
+        <sect2>
+            <title>Integrating Seam with your EJB container</title>
+
+            <para> We need to apply the <literal>SeamInterceptor</literal> to our Seam components. The simplest way to
+                do this across an entire application is to add the following interceptor configuration in
+                    <literal>ejb-jar.xml</literal>: </para>
+
+            <programlisting role="XML"><![CDATA[<interceptors>
+    <interceptor>
+        <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+    </interceptor>
+</interceptors>
+   
+<assembly-descriptor>
+    <interceptor-binding>
+        <ejb-name>*</ejb-name>
+        <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+    </interceptor-binding>
+</assembly-descriptor>
+]]></programlisting>
+
+            <para> Seam needs to know where to go to find session beans in JNDI. One way to do this is specify the
+                    <literal>@JndiName</literal> annotation on every session bean Seam component. However, this is quite
+                tedious. A better approach is to specify a pattern that Seam can use to calculate the JNDI name from the
+                EJB name. Unfortunately, there is no standard mapping to global JNDI defined in the EJB3 specification,
+                so this mapping is vendor-specific. We usually specify this option in <literal>components.xml</literal>. </para>
+
+            <para> For JBoss AS, the following pattern is correct: </para>
+
+            <programlisting role="XML"><![CDATA[<core:init jndi-name="myEarName/#{ejbName}/local" />]]></programlisting>
+
+            <para> Where <literal>myEarName</literal> is the name of the EAR in which the bean is deployed. </para>
+
+            <para> Outside the context of an EAR (when using the JBoss Embeddable EJB3 container), the following pattern
+                is the one to use: </para>
+
+            <programlisting role="XML"><![CDATA[<core:init jndi-name="#{ejbName}/local" />]]></programlisting>
+
+            <para> You'll have to experiment to find the right setting for other application servers. Note that some
+                servers (such as GlassFish) require you to specify JNDI names for all EJB components explicitly (and
+                tediously). In this case, you can pick your own pattern ;-) </para>
+                
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<transaction:ejb-transaction/>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Don't forget!</title>
+
+            <para> There is one final item you need to know about. You must place a <literal>seam.properties</literal>,
+                    <literal>META-INF/seam.properties</literal> or <literal>META-INF/components.xml</literal> file in
+                any archive in which your Seam components are deployed (even an empty properties file will do). At
+                startup, Seam will scan any archives with <literal>seam.properties</literal> files for seam components. </para>
+
+            <para> In a web archive (WAR) file, you must place a <literal>seam.properties</literal> file in the
+                    <literal>WEB-INF/classes</literal> directory if you have any Seam components included here. </para>
+
+            <para> That's why all the Seam examples have an empty <literal>seam.properties</literal> file. You can't
+                just delete this file and expect everything to still work! </para>
+
+            <para> You might think this is silly and what kind of idiot framework designers would make an empty file
+                affect the behavior of their software?? Well, this is a workaround for a limitation of the
+                JVM&#8212;if we didn't use this mechanism, our next best option would be to force you to list every
+                component explicitly in <literal>components.xml</literal>, just like some other competing frameworks do!
+                I think you'll like our way better. </para>
+
+        </sect2>
+
+    </sect1>
+    
+    <sect1 id="alt-jpa-providers">
+        <title>Using Alternate JPA Providers</title>
+        
+        <para> 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.  
+        </para>
+        
+        <note>
+            <title>This is a workaround</title>
+            <para>
+            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.
+            </para> 
+        </note>
+        
+        <para>Telling seam about a different JPA provider can be be done in one of two ways:</para>
+        <para>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:                    
+        </para>
+        <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.persistence.persistenceProvider" 
+           class="org.jboss.seam.persistence.PersistenceProvider"
+           scope="stateless">
+</component>]]></programlisting>
+        <para>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.
+        </para>
+        <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.persistence.persistenceProvider" 
+           class="org.your.package.YourPersistenceProvider">
+</component>]]></programlisting> 
+        <para>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.
+        </para>
+    </sect1>
+
+    <sect1>
+        <title>Configuring Seam in Java EE 5</title>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/ee5.png" align="center"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/ee5.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <para> If you're running in a Java EE 5 environment, this is all the configuration required to start using Seam! </para>
+
+        <sect2>
+            <title>Packaging</title>
+
+            <para> Once you've packaged all this stuff together into an EAR, the archive structure will look something
+                like this: </para>
+
+            <programlisting><![CDATA[my-application.ear/
+    jboss-seam.jar
+    lib/
+        jboss-el.jar
+    META-INF/
+        MANIFEST.MF
+        application.xml
+    my-application.war/
+        META-INF/
+            MANIFEST.MF
+        WEB-INF/
+            web.xml
+            components.xml
+            faces-config.xml
+            lib/
+                jsf-facelets.jar
+                jboss-seam-ui.jar
+        login.jsp
+        register.jsp
+        ...
+    my-application.jar/
+        META-INF/
+            MANIFEST.MF
+            persistence.xml
+        seam.properties
+        org/
+            jboss/
+                myapplication/
+                    User.class
+                    Login.class
+                    LoginBean.class
+                    Register.class
+                    RegisterBean.class
+                    ...]]></programlisting>
+
+            <para>
+                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.
+            </para>
+
+            <para> If you want to use jBPM or Drools, you must include the needed jars in the EAR's lib directory.</para>
+
+            <para> If you want to use facelets (our recommendation), you must include
+                <literal>jsf-facelets.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. </para>
+
+            <para> If you want to use the Seam tag library (most Seam applications do), you must include
+                    <literal>jboss-seam-ui.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. If
+                you want to use the PDF or email tag libraries, you need to put <literal>jboss-seam-pdf.jar</literal> or
+                    <literal>jboss-seam-mail.jar</literal> in <literal>WEB-INF/lib</literal>. </para>
+
+            <para> If you want to use the Seam debug page (only works for applications using facelets), you must include
+                    <literal>jboss-seam-debug.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. </para>
+
+            <para> Seam ships with several example applications that are deployable in any Java EE container that
+                supports EJB 3.0. </para>
+
+            <para> I really wish that was all there was to say on the topic of configuration but unfortunately we're
+                only about a third of the way there. If you're too overwhelmed by all this tedious configuration stuff,
+                feel free to skip over the rest of this section and come back to it later. </para>
+
+        </sect2>
+
+    </sect1>
+
+    <sect1>
+        <title>Configuring Seam in J2EE</title>
+
+        <para> Seam is useful even if you're not yet ready to take the plunge into EJB 3.0. In this case you would use
+            Hibernate3 or JPA instead of EJB 3.0 persistence, and plain JavaBeans instead of session beans. You'll miss
+            out on some of the nice features of session beans but it will be very easy to migrate to EJB 3.0 when you're
+            ready and, in the meantime, you'll be able to take advantage of Seam's unique declarative state management
+            architecture. </para>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/hibernate-ee.png" align="center"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/hibernate-ee.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <para> Seam JavaBean components do not provide declarative transaction demarcation like session beans do. You
+                <emphasis>could</emphasis> manage your transactions manually using the JTA
+            <literal>UserTransaction</literal> or declaratively using Seam's <literal>@Transactional</literal>
+            annotation. But most applications will just use Seam managed transactions when using Hibernate with
+            JavaBeans. </para>
+
+        <para> The Seam distribution includes a version of the booking example application that uses Hibernate3 and
+            JavaBeans instead of EJB3, and another version that uses JPA and JavaBeans. These example applications are
+            ready to deploy into any J2EE application server. </para>
+
+        <sect2>
+            <title>Boostrapping Hibernate in Seam</title>
+
+            <para> Seam will bootstrap a Hibernate <literal>SessionFactory</literal> from your
+                    <literal>hibernate.cfg.xml</literal> file if you install a built-in component: </para>
+
+            <programlisting role="XML"><![CDATA[<persistence:hibernate-session-factory name="hibernateSessionFactory"/>]]></programlisting>
+
+            <para> You will also need to configure a <emphasis>managed session</emphasis> if you want a Seam managed
+                Hibernate <literal>Session</literal> to be available via injection. </para>
+
+            <programlisting role="XML"><![CDATA[<persistence:managed-hibernate-session name="hibernateSession"
+                            session-factory="#{hibernateSessionFactory}"/>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Boostrapping JPA in Seam</title>
+
+            <para> Seam will bootstrap a JPA <literal>EntityManagerFactory</literal> from your
+                <literal>persistence.xml</literal> file if you install this built-in component: </para>
+
+            <programlisting role="XML"><![CDATA[<persistence:entity-manager-factory name="entityManagerFactory"/>]]></programlisting>
+
+            <para> 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. </para>
+
+            <programlisting role="XML"><![CDATA[<persistence:managed-persistence-context name="entityManager"
+                            entity-manager-factory="#{entityManagerFactory}"/>]]></programlisting>
+
+        </sect2>
+
+        <sect2>
+            <title>Packaging</title>
+
+            <para> We can package our application as a WAR, in the following structure: </para>
+
+            <programlisting><![CDATA[my-application.war/
+    META-INF/
+        MANIFEST.MF
+    WEB-INF/
+        web.xml
+        components.xml
+        faces-config.xml
+        lib/
+            jboss-seam.jar
+            jboss-seam-ui.jar
+            jboss-el.jar
+            jsf-facelets.jar
+            hibernate3.jar
+            hibernate-annotations.jar
+            hibernate-validator.jar
+            ...
+            my-application.jar/
+                META-INF/
+                   MANIFEST.MF
+                seam.properties
+                hibernate.cfg.xml
+                org/
+                    jboss/
+                        myapplication/
+                            User.class
+                            Login.class
+                            Register.class
+                            ...
+    login.jsp
+    register.jsp
+    ...]]></programlisting>
+
+            <para> If we want to deploy Hibernate in a non-EE environment like TestNG, we need to do a little
+                bit more work. </para>
+
+        </sect2>
+    </sect1>
+
+    <sect1>
+        <title>Configuring Seam in Java SE, without JBoss Embedded</title>
+
+        <para> 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: </para>
+            
+        <programlisting role="XML"><![CDATA[<transaction:entity-transaction entity-manager="#{entityManager}"/>]]></programlisting>
+        
+        <para> If you're using Hibernate, you can tell Seam to use the Hibernate transaction API like this: </para>
+            
+        <programlisting role="XML"><![CDATA[<transaction:hibernate-transaction session="#{session}"/>]]></programlisting>
+        
+        <para> Of course, you'll also need to define a datasource.</para>
+    </sect1>
+
+    <sect1>
+        <title>Configuring jBPM in Seam</title>
+        <para> Seam's jBPM integration is not installed by default, so you'll need to enable jBPM by installing a
+            built-in component. You'll also need to explicitly list your process and pageflow definitions. In
+                <literal>components.xml</literal>: </para>
+
+        <programlisting role="XML"><![CDATA[<bpm:jbpm>
+    <bpm:pageflow-definitions>
+        <value>createDocument.jpdl.xml</value>
+        <value>editDocument.jpdl.xml</value>
+        <value>approveDocument.jpdl.xml</value>
+    </bpm:pageflow-definitions>
+    <bpm:process-definitions>
+        <value>documentLifecycle.jpdl.xml</value>
+    </bpm:process-definitions>
+</bpm:jbpm>]]></programlisting>
+
+        <para> No further special configuration is needed if you only have pageflows. If you do have business process
+            definitions, you need to provide a jBPM configuration, and a Hibernate configuration for jBPM. The Seam DVD
+            Store demo includes example <literal>jbpm.cfg.xml</literal> and <literal>hibernate.cfg.xml</literal> files
+            that will work with Seam: </para>
+
+        <programlisting role="XML"><![CDATA[<jbpm-configuration>
+
+  <jbpm-context>
+    <service name="persistence">
+       <factory>
+          <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
+             <field name="isTransactionEnabled"><false/></field>
+          </bean>
+       </factory>
+    </service>
+    <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
+    <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
+    <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
+    <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
+    <service name="authentication" 
+             factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
+  </jbpm-context>
+
+</jbpm-configuration>]]></programlisting>
+
+        <para> The most important thing to notice here is that jBPM transaction control is disabled. Seam or EJB3 should
+            control the JTA transactions. </para>
+
+        <sect2>
+            <title>Packaging</title>
+
+            <para> There is not yet any well-defined packaging format for jBPM configuration and process/pageflow
+                definition files. In the Seam examples we've decided to simply package all these files into the root of
+                the EAR. In future, we will probably design some other standard packaging format. So the EAR looks
+                something like this: </para>
+
+            <programlisting><![CDATA[my-application.ear/
+    jboss-seam.jar
+    lib/
+       jboss-el.jar
+       jbpm-3.1.jar
+    META-INF/
+        MANIFEST.MF
+        application.xml
+    my-application.war/
+        META-INF/
+            MANIFEST.MF
+        WEB-INF/
+            web.xml
+            components.xml
+            faces-config.xml
+            lib/
+                jsf-facelets.jar
+                jboss-seam-ui.jar
+        login.jsp
+        register.jsp
+        ...
+    my-application.jar/
+        META-INF/
+            MANIFEST.MF
+            persistence.xml
+        seam.properties
+        org/
+            jboss/
+                myapplication/
+                    User.class
+                    Login.class
+                    LoginBean.class
+                    Register.class
+                    RegisterBean.class
+                    ...
+    jbpm.cfg.xml
+    hibernate.cfg.xml
+    createDocument.jpdl.xml
+    editDocument.jpdl.xml
+    approveDocument.jpdl.xml
+    documentLifecycle.jpdl.xml]]></programlisting>
+
+        </sect2>
+
+    </sect1>
+
+    <sect1>
+        <title>Configuring SFSB and Session Timeouts in JBoss AS</title>
+
+        <para> It is very important that the timeout for Stateful Session Beans is set higher than the timeout for HTTP
+            Sessions, otherwise SFSB's may time out before the user's HTTP session has ended. JBoss Application Server
+            has a default session bean timeout of 30 minutes, which is configured in
+                <literal>server/default/conf/standardjboss.xml</literal> (replace <emphasis>default</emphasis> with your
+            own configuration). </para>
+
+        <para> The default SFSB timeout can be adjusted by modifying the value of <literal>max-bean-life</literal> in
+            the <literal>LRUStatefulContextCachePolicy</literal> cache configuration: </para>
+
+        <programlisting role="XML"><![CDATA[<container-cache-conf>
+    <cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
+    <cache-policy-conf>
+        <min-capacity>50</min-capacity>
+        <max-capacity>1000000</max-capacity>
+        <remover-period>1800</remover-period>
+
+        <!-- SFSB timeout in seconds; 1800 seconds == 30 minutes -->
+        <max-bean-life>1800</max-bean-life>  
+
+        <overager-period>300</overager-period>
+        <max-bean-age>600</max-bean-age>
+        <resizer-period>400</resizer-period>
+        <max-cache-miss-period>60</max-cache-miss-period>
+        <min-cache-miss-period>1</min-cache-miss-period>
+        <cache-load-factor>0.75</cache-load-factor>
+    </cache-policy-conf>
+</container-cache-conf>]]></programlisting>
+
+        <para> The default HTTP session timeout can be modified in
+                <literal>server/&lt;profile&gt;/deploy/jboss-web.deployer/conf/web.xml</literal> for JBoss EAP 4.3. The following
+            entry in this file controls the default session timeout for all web applications: </para>
+
+        <programlisting role="XML"><![CDATA[<session-config>
+    <!-- HTTP Session timeout, in minutes -->
+    <session-timeout>30</session-timeout>
+</session-config>]]></programlisting>
+
+        <para> To override this value for your own application, simply include this entry in your application's own
+                <literal>web.xml</literal>. </para>
+
+    </sect1>
+    
+    <sect1>
+        <title>Running Seam in a Portlet</title>
+
+        <para>
+           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.
+        </para>
+        
+        <note>
+        	<title>Technology preview </title>    
+    		<para>Seam Integration with JBoss Portlet Bridge is marked as technology preview, so standard support is not guaranteed.</para>     
+    	</note>
+
+    </sect1>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Configuration.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Controls.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Controls.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Controls.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="controls">
+   <title>Seam JSF controls</title>
+   <para>
+      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.
+   </para>
+
+   <section id="controls.tags">
+      <title>Tags</title>
+
+      <para>
+         To use these tags, define the "<literal>s</literal>" namespace in your page 
+         as follows (facelets only):
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:s="http://jboss.com/products/seam/taglib">]]></programlisting>
+
+      <para>
+         The ui example demonstrates the use of a number of these tags.
+      </para>
+  
+      <section>
+         <title>Navigation Controls</title>
+         
+         <section>
+            <title><literal>&lt;s:button&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+               
+            <para>
+               A button that supports invocation of an action with control over 
+               conversation propagation. <emphasis>Does not submit the 
+               form.</emphasis>
+            </para>
+            <para><emphasis>Attributes</emphasis></para>
+               
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>value</literal> &#8212; the label.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>action</literal> &#8212; a method binding that 
+                     specified the action
+                     listener.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>view</literal> &#8212; the JSF view id to link to.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>fragment</literal> &#8212; the fragment 
+                     identifier to link to.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>disabled</literal> &#8212; is the link disabled?
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>propagation</literal> &#8212; determines the 
+                     conversation propagation style: <literal>begin</literal>, 
+                     <literal>join</literal>, <literal>nest</literal>, 
+                     <literal>none</literal> or <literal>end</literal>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>pageflow</literal> &#8212; a pageflow definition 
+                     to begin. (This is only useful when 
+                     <literal>propagation="begin"</literal> or
+                     <literal>propagation="join"</literal> is used).
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+               
+            <programlisting role="XHTML"><![CDATA[<s:button id="cancel" 
+          value="Cancel" 
+          action="#{hotelBooking.cancel}"/>]]></programlisting>
+            <para>
+               You can specify both <literal>view</literal> and 
+               <literal>action</literal> on <literal>&lt;s:link /&gt;</literal>. 
+               In this case, the action wil be called once the redirect to the 
+               specified view has occured.
+            </para>
+            
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:conversationId&gt;</literal></title>
+   
+            <para><emphasis>Description</emphasis></para>
+   
+            <para>
+               Add the conversation id to JSF link or button (e.g.
+               <literal>&lt;h:commandLink /&gt;</literal> ,
+               <literal>&lt;s:button /&gt;</literal>).
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            
+            <para>None</para>
+            
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:taskId&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Add the task id to an output link (or similar JSF control), 
+               when the task is available via <literal>#{task}</literal>.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+                None.
+            </para>
+         
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:link&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               A link that supports invocation of an action with control over 
+               conversation propagation. <emphasis>Does not submit the 
+               form.</emphasis>
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>value</literal> &#8212; the label.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>action</literal>  &#8212; a method binding that 
+                     specified the action listener.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>view</literal> &#8212; the JSF view id to link to.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>fragment</literal> &#8212; the fragment identifier
+                     to link to.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>disabled</literal> &#8212; is the link disabled?
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>propagation</literal> &#8212; determines the 
+                     conversation propagation style: <literal>begin</literal>,
+                     <literal>join</literal>, <literal>nest</literal>,
+                     <literal>none</literal> or <literal>end</literal>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>pageflow</literal> &#8212; a pageflow definition 
+                     to begin. (This is only useful when using
+                     <literal>propagation="begin"</literal> or
+                     <literal>propagation="join"</literal>.)
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:link id="register" view="/register.xhtml" 
+        value="Register New User"/>]]></programlisting>
+            <para>
+               You can specify both <literal>view</literal> and 
+               <literal>action</literal> on <literal>&lt;s:link /&gt;</literal>.
+               In this case, the action will be called once the redirect to the 
+               specified view has occured.
+            </para>
+         
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:conversationPropagation&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Customize the conversation propagation for a command link or button
+               (or similar JSF control). <emphasis>Facelets only.</emphasis>
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>type</literal> &#8212; determines the conversation
+                     propagation style: <literal>begin</literal>, 
+                     <literal>join</literal>, <literal>nest</literal>, 
+                     <literal>none</literal> or <literal>end</literal>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>pageflow</literal> &#8212; a pageflow definition to 
+                     begin. (This is only useful when using 
+                     <literal>propagation="begin"</literal> or 
+                     <literal>propagation="join"</literal>.)
+                  </para>
+               </listitem>
+            </itemizedlist>
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:commandButton value="Apply" action="#{personHome.update}">
+   <s:conversationPropagation type="join" />
+</h:commandButton>]]></programlisting>
+         </section>
+         
+         <section>
+            <title>
+               <literal>&lt;s:defaultAction&gt;</literal>
+            </title>
+   
+            <para>
+               <emphasis>Description</emphasis>
+            </para>
+            <para>
+               Specify the default action to run when the form is submitted using
+               the enter key.
+            </para>
+            <para>
+               Currently you can only nest it inside buttons (e.g.
+               <literal>&lt;h:commandButton /&gt;</literal>,
+               <literal>&lt;a:commandButton /&gt;</literal> or
+               <literal>&lt;tr:commandButton /&gt;</literal>).
+            </para>
+            <para>
+               You must specify an id on the action source. You can only have one
+               default action per form.
+            </para>
+   
+            <para>
+               <emphasis>Attributes</emphasis>
+            </para>
+            <para>None.</para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:commandButton id="foo" value="Foo" action="#{manager.foo}">
+   <s:defaultAction />
+</h:commandButton>]]></programlisting>
+         </section>
+         
+      </section>
+      
+      <section>
+         <title>Converters and Validators</title>
+         
+         <section>
+            <title><literal>&lt;s:convertDateTime&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>Perform date or time conversions in the Seam timezone.</para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>None.</para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:outputText value="#{item.orderDate}">
+   <s:convertDateTime type="both" dateStyle="full"/>
+</h:outputText>]]></programlisting>
+   
+         </section>
+   
+         <section>
+            <title><literal>&lt;s:convertEntity&gt;</literal></title>
+   
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Assigns an entity converter to the current component. This is
+               primarily useful for radio button and dropdown controls.
+            </para>
+   
+            <para>
+               The converter works with any managed entity which has an
+               <literal>@Id</literal>
+               annotation - either simple or composite.
+            </para>
+   
+            <para><emphasis>Attributes</emphasis></para>
+            <para>None.</para>
+   
+            <para><emphasis>Configuration</emphasis></para>
+   
+            <para>
+               You must use <emphasis>Seam managed transactions</emphasis> (see
+               <xref linkend="persistence.seam-managed-transactions" />) with
+               <literal>&lt;s:convertEntity /&gt;</literal>.
+            </para>
+   
+            <para>
+               If your <emphasis>Managed Persistence Context</emphasis> isn't 
+               called <literal>entityManager</literal>, then you need to set it in 
+               components.xml:
+            </para>
+            <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.ui.EntityConverter">
+   <property name="entityManager">#{em}</property>
+</component>]]></programlisting>
+   
+            <para>
+               If you are using a <emphasis>Managed Hibernate Session</emphasis>
+               then you need to set it in components.xml:
+            </para>
+            <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.ui.EntityConverter">
+   <property name="session">#{hibernateSession}</property>
+</component>]]></programlisting>
+   
+            <para>
+               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:
+            </para>
+   
+            <programlisting role="XML"><![CDATA[<component name="myEntityConverter" class="org.jboss.seam.ui.converter.EntityConverter">
+   <property name="entityManager">#{em}</property>
+</component>]]></programlisting>
+   
+            <programlisting role="XHTML"><![CDATA[<h:selectOneMenu value="#{person.continent}">
+   <s:selectItems value="#{continents.resultList}" var="continent" 
+                  label="#{continent.name}" />
+   <f:converter converterId="myEntityConverter" />
+</h:selectOneMenu>]]></programlisting>
+   
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:selectOneMenu value="#{person.continent}" required="true">
+   <s:selectItems value="#{continents.resultList}" var="continent" 
+                  label="#{continent.name}" 
+                  noSelectionLabel="Please Select..."/>
+   <s:convertEntity />
+</h:selectOneMenu>]]></programlisting>
+         </section>
+   
+         <section>
+            <title><literal>&lt;s:convertEnum&gt;</literal></title>
+   
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Assigns an enum converter to the current component. This is
+               primarily useful for radio button and dropdown controls.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>None.</para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:selectOneMenu value="#{person.honorific}">
+   <s:selectItems value="#{honorifics}" var="honorific" 
+                 label="#{honorific.label}"
+                 noSelectionLabel="Please select" />
+   <s:convertEnum />
+</h:selectOneMenu>]]></programlisting>
+         </section>   
+         
+         <section>
+            <title><literal>&lt;s:validate&gt;</literal></title>
+          
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               A non-visual control, validates a JSF input field against the 
+               bound property using Hibernate Validator.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:inputText id="userName" required="true" 
+             value="#{customer.userName}">
+  <s:validate />
+</h:inputText>
+<h:message for="userName" styleClass="error" />]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:validateAll&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               A non-visual control, validates all child JSF input fields 
+               against their bound properties using Hibernate Validator.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:validateAll>
+  <div class="entry">
+    <h:outputLabel for="username">Username:</h:outputLabel>
+    <h:inputText id="username" value="#{user.username}" 
+                 required="true"/>
+    <h:message for="username" styleClass="error" />
+  </div>
+  <div class="entry">
+    <h:outputLabel for="password">Password:</h:outputLabel>
+    <h:inputSecret id="password" value="#{user.password}" 
+                   required="true"/>
+    <h:message for="password" styleClass="error" />
+  </div>
+  <div class="entry">
+    <h:outputLabel for="verify">Verify Password:</h:outputLabel>
+    <h:inputSecret id="verify" value="#{register.verify}" 
+                   required="true"/>
+    <h:message for="verify" styleClass="error" />
+  </div>
+</s:validateAll>]]></programlisting>
+       
+         </section>
+         
+      </section>
+      
+      <section>
+         <title>Formatting</title>
+         
+         <section>
+            <title><literal>&lt;s:decorate&gt;</literal></title>
+          
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               "Decorate" a JSF input field when validation fails or when
+               <literal>required="true"</literal> is set.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>template</literal> &#8212; the facelets template 
+                     to use to decorate the component
+                </para>
+              </listitem>
+            </itemizedlist>
+            <para>
+               <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.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:decorate template="edit.xhtml">
+   <ui:define name="label">Country:</ui:define>
+      <h:inputText value="#{location.country}" required="true"/>
+   </s:decorate>]]></programlisting>
+            <programlisting role="XHTML"><![CDATA[<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+   xmlns:ui="http://java.sun.com/jsf/facelets"
+   xmlns:h="http://java.sun.com/jsf/html"
+   xmlns:f="http://java.sun.com/jsf/core"
+   xmlns:s="http://jboss.com/products/seam/taglib">
+                  
+   <div>   
+   
+      <s:label styleClass="#{invalid?'error':''}">
+         <ui:insert name="label"/>
+         <s:span styleClass="required" rendered="#{required}">*</s:span>
+      </s:label>
+        
+      <span class="#{invalid?'error':''}">
+         <s:validateAll>
+            <ui:insert/>
+         </s:validateAll>
+      </span>
+        
+      <s:message styleClass="error"/>     
+      
+   </div>   
+  
+</ui:composition>]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:div&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Render a HTML <literal>&lt;div&gt;</literal>.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+               <programlisting role="XHTML"><![CDATA[<s:div rendered="#{selectedMember == null}">
+   Sorry, but this member does not exist.
+</s:div>]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:span&gt;</literal></title>
+          
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Render a HTML <literal>&lt;span&gt;</literal>.
+            </para>
+          
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+          
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:span styleClass="required" rendered="#{required}">*</s:span>]]></programlisting>
+         
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:fragment&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               A non-rendering component useful for enabling/disabling rendering
+               of it's children.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:fragment rendered="#{auction.highBidder ne null}">
+   Current bid:
+</s:fragment>]]></programlisting>
+            
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:label&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               "Decorate" a JSF input field with the label.  The label is placed
+               inside the HTML <literal>&lt;label&gt;</literal> tag, and is 
+               associated with the nearest JSF input component.  It is often 
+               used with <literal>&lt;s:decorate&gt;</literal>.
+            </para>
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>style</literal> &#8212; The control's style
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>styleClass</literal> &#8212; The control's style class
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:label styleClass="label">
+  Country:
+</s:label>
+<h:inputText value="#{location.country}" required="true"/>]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:message&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               "Decorate" a JSF input field with the validation error message.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<f:facet name="afterInvalidField">
+  <s:span>
+    &#160;Error:&#160;
+    <s:message/>
+  </s:span>
+</f:facet>]]></programlisting>
+         
+         </section>
+         
+      </section>
+      
+      <section>
+         <title>Seam Text</title>
+         
+         <section>
+            <title><literal>&lt;s:validateFormattedText&gt;</literal></title>
+          
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Checks that the submitted value is valid Seam Text
+            </para>
+          
+            <para><emphasis>Attributes</emphasis></para>
+            <para>
+               None.
+            </para>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:formattedText&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               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.
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+              <listitem>
+                 <para>
+                    <literal>value</literal> &#8212; an EL expression specifying 
+                    the rich text markup to render.
+                 </para>
+              </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:formattedText value="#{blog.text}"/>]]></programlisting>
+            
+            <para><emphasis>Example</emphasis></para>
+            <mediaobject>
+              <imageobject role="fo">
+                <imagedata fileref="images/controls-seamtext.png" align="center" scalefit="1"/>
+              </imageobject>
+              <imageobject role="html">
+                <imagedata fileref="images/controls-seamtext.png" align="center"/>
+              </imageobject>
+            </mediaobject>
+         
+         </section>
+      
+      </section> 
+      
+      <section>
+         <title>Dropdowns</title>
+         
+         <section>
+            <title><literal>&lt;s:enumItem&gt;</literal></title>
+            
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Creates a <literal>SelectItem</literal> from an enum value.
+            </para>
+               
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>enumValue</literal> &#8212; the string 
+                     representation of the enum value.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>label</literal> &#8212; the label to be used when 
+                     rendering the <literal>SelectItem</literal>.
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<h:selectOneRadio id="radioList"
+                  layout="lineDirection"
+                  value="#{newPayment.paymentFrequency}">
+   <s:convertEnum />
+   <s:enumItem enumValue="ONCE"         label="Only Once" />
+   <s:enumItem enumValue="EVERY_MINUTE" label="Every Minute" />
+   <s:enumItem enumValue="HOURLY"       label="Every Hour" />
+   <s:enumItem enumValue="DAILY"        label="Every Day" />
+   <s:enumItem enumValue="WEEKLY"       label="Every Week" />
+</h:selectOneRadio>]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:selectItems&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, DataModel or Array.
+            </para>
+
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>value</literal> &#8212; an EL expression 
+                     specifying the data that backs the 
+                     <literal>List&lt;SelectItem&gt;</literal>
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>var</literal>&#8212; defines the name of the local
+                     variable that holds the current object during iteration
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>label</literal> &#8212; the label to be used when 
+                     rendering the <literal>SelectItem</literal>. Can reference 
+                     the <literal>var</literal> variable.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>itemValue</literal> &#8212; 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.
+                  </para>
+               </listitem>
+
+               <listitem>
+                  <para>
+                     <literal>disabled</literal>
+                     &#8212; if true the <literal>SelectItem</literal> will be 
+                     rendered disabled. Can reference the <literal>var</literal>
+                     variable.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>noSelectionLabel</literal> &#8212; 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).
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>hideNoSelectionLabel</literal> &#8212; if true,
+                     the <literal>noSelectionLabel</literal> will be hidden when
+                     a value is selected 
+                  </para>
+               </listitem>
+            </itemizedlist>
+            <para><emphasis>Usage</emphasis></para>
+             <programlisting role="XHTML"><![CDATA[<h:selectOneMenu value="#{person.age}" 
+                 converter="ageConverter">
+  <s:selectItems value="#{ages}" var="age" label="#{age}" />
+</h:selectOneMenu>]]></programlisting>
+         </section>
+         
+      </section>
+      
+      <section>
+         <title>Other</title>
+         
+         <section>
+            <title><literal>&lt;s:cache&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Cache the rendered page fragment using JBoss Cache. Note that
+               <literal>&lt;s:cache&gt;</literal> actually uses the instance
+               of JBoss Cache managed by the built-in 
+               <literal>pojoCache</literal> component.
+            </para>
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>key</literal> &#8212; 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>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>enabled</literal> &#8212; a value expression that 
+                     determines if the cache should be used.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>region</literal> &#8212; a JBoss Cache node to use
+                     (different nodes can have different expiry policies).
+                 </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:cache key="entry-#{blogEntry.id}" region="pageFragments">
+  <div class="blogEntry">
+    <h3>#{blogEntry.title}</h3>
+    <div>
+      <s:formattedText value="#{blogEntry.body}"/>
+    </div>
+    <p>
+      [Posted on&#160;
+      <h:outputText value="#{blogEntry.date}">
+        <f:convertDateTime timezone="#{blog.timeZone}" locale="#{blog.locale}" 
+                           type="both"/>
+      </h:outputText>]
+    </p>
+  </div>
+</s:cache>]]></programlisting>
+          
+         </section>
+
+         <section>
+            <title><literal>&lt;s:fileUpload&gt;</literal></title>
+
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               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: 
+            </para>
+
+            <programlisting role="XHTML"><![CDATA[<h:form enctype="multipart/form-data">]]></programlisting>
+
+            <para>
+               For multipart requests, the Seam Multipart servlet filter must 
+               also be configured in <literal>web.xml</literal>:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<filter>
+  <filter-name>Seam Filter</filter-name>
+  <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+</filter>
+
+<filter-mapping>
+  <filter-name>Seam Filter</filter-name>
+  <url-pattern>/*</url-pattern>
+</filter-mapping>]]></programlisting>
+
+            <para><emphasis>Configuration</emphasis></para>
+
+            <para>
+               The following configuration options for multipart requests may be
+               configured in components.xml:
+            </para>
+
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>createTempFiles</literal> &#8212; if this option 
+                     is set to true, uploaded files are streamed to a temporary 
+                     file instead of in memory.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>maxRequestSize</literal> &#8212; the maximum size 
+                     of a file upload request, in bytes.
+                  </para>
+               </listitem>
+            </itemizedlist>
+
+            <para>
+               Here's an example:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<component class="org.jboss.seam.web.MultipartFilter">
+  <property name="createTempFiles">true</property>
+  <property name="maxRequestSize">1000000</property>
+</component>]]></programlisting>
+
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>data</literal> &#8212; this value binding receives
+                     the binary file data. The receiving field should be 
+                     declared as a <literal>byte[]</literal> or 
+                     <literal>InputStream</literal> (required).
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>contentType</literal> &#8212; this value binding 
+                     receives the file's content type (optional).
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>fileName</literal> &#8212; this value binding 
+                     receives the filename (optional).
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>fileSize</literal> &#8212; this value binding 
+                     receives the file size (optional).
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>accept</literal> &#8212; 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>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>style</literal> &#8212; The control's style
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>styleClass</literal> &#8212; The control's style 
+                     class
+                  </para>
+               </listitem>
+            </itemizedlist>
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:fileUpload id="picture" data="#{register.picture}" 
+              accept="image/png"
+              contentType="#{register.pictureContentType}" />]]></programlisting>
+              
+         </section>
+
+         <section>
+            <title><literal>&lt;s:graphicImage&gt;</literal></title>
+ 
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               An extended <literal>&lt;h:graphicImage&gt;</literal> that allows
+               the image to be created in a Seam Component; further transforms
+               can be applied to the image.
+            </para>
+            <para>
+               All attributes for <literal>&lt;h:graphicImage&gt;</literal> are 
+               supported, as well as:
+            </para>
+            
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>value</literal> &#8212; 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>.
+                  </para>
+               </listitem>
+               <listitem>
+                  <para>
+                     <literal>fileName</literal> &#8212; 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
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Transformations</emphasis></para>
+            <para>
+               To apply a transform to the image, you would nest a tag 
+               specifying the transform to apply.  Seam currently supports these
+               transforms:
+            </para>
+            <variablelist>
+               <varlistentry>
+                  <term>
+                     <literal>&lt;s:transformImageSize&gt;</literal>
+                  </term>
+                  <listitem>
+                     <itemizedlist>
+                        <listitem>
+                           <para>
+                              <literal>width</literal> &#8212; new width of the 
+                              image
+                           </para>
+                        </listitem>
+                        <listitem>
+                           <para>
+                              <literal>height</literal> &#8212; new height of the 
+                              image
+                           </para>
+                        </listitem>
+                        <listitem>
+                           <para>
+                              <literal>maintainRatio</literal> &#8212; 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.
+                           </para>
+                        </listitem>
+                        <listitem>
+                           <para>
+                              <literal>factor</literal> &#8212; scale the image 
+                              by the given factor
+                           </para>
+                        </listitem>
+                     </itemizedlist>
+                  </listitem>
+               </varlistentry>
+               <varlistentry>
+                  <term>
+                     <literal>&lt;s:transformImageBlur&gt;</literal>
+                  </term>
+                  <listitem>
+                     <itemizedlist>
+                        <listitem>
+                           <para>
+                              <literal>radius</literal> &#8212; perform a 
+                              convolution blur with the given radius
+                           </para>
+                        </listitem>
+                     </itemizedlist>
+                  </listitem>
+               </varlistentry>
+               <varlistentry>
+                  <term>
+                     <literal>&lt;s:transformImageType&gt;</literal>
+                  </term>
+                  <listitem>
+                     <itemizedlist>
+                        <listitem>
+                           <para>
+                              <literal>contentType</literal> &#8212; alter the 
+                              type of the image to either 
+                              <literal>image/jpeg</literal> or
+                              <literal>image/png</literal>
+                           </para>
+                        </listitem>
+                     </itemizedlist>
+                  </listitem>
+               </varlistentry>
+            </variablelist>
+
+            <para>
+               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.
+            </para>
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:graphicImage rendered="#{auction.image ne null}"
+                value="#{auction.image.data}">
+  <s:transformImageSize width="200" maintainRatio="true"/>
+</s:graphicImage>]]></programlisting>
+         </section>
+         
+         <section>
+            <title><literal>&lt;s:remote&gt;</literal></title>
+          
+            <para><emphasis>Description</emphasis></para>
+            <para>
+               Generates the Javascript stubs required to use Seam Remoting.
+            </para>
+          
+            <para><emphasis>Attributes</emphasis></para>
+            <itemizedlist>
+               <listitem>
+                  <para>
+                     <literal>include</literal> &#8212; 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.
+                  </para>
+               </listitem>
+            </itemizedlist>
+            
+            <para><emphasis>Usage</emphasis></para>
+            <programlisting role="XHTML"><![CDATA[<s:remote include="customerAction,accountAction,com.acme.MyBean"/>]]></programlisting>    
+         </section>
+      </section> 
+   </section>
+
+
+   <section id="controls.annotations">
+     <title>Annotations</title>
+     
+     <para>
+       Seam also provides annotations to allow you to use Seam components as JSF
+       converters and validators:
+       
+     </para>
+     <variablelist>
+       <varlistentry>
+         <term>
+           <literal>@Converter</literal>
+         </term>
+         <listitem>
+           <programlisting role="JAVA"><![CDATA[@Name("itemConverter") 
+   @BypassInterceptors 
+   @Converter
+   public class ItemConverter implements Converter {
+      
+     @Transactional
+     public Object getAsObject(FacesContext context, UIComponent cmp, String value) {
+       EntityManager entityManager = (EntityManager) Component.getInstance("entityManager");
+       entityManager.joinTransaction();
+       // Do the conversion
+     }
+     
+     public String getAsString(FacesContext context, UIComponent cmp, Object value) {
+       // Do the conversion
+     }
+     
+   }]]></programlisting>
+   
+             <programlisting role="XHTML"><![CDATA[<h:inputText value="#{shop.item}" converter="itemConverter" />]]></programlisting>
+               
+             <para>
+               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.
+             </para>
+           </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <literal>@Validator</literal>
+         </term>
+         <listitem>
+           <programlisting role="JAVA"><![CDATA[@Name("itemValidator") 
+   @BypassInterceptors 
+   @Validator
+   public class ItemValidator implements Validator {
+      
+     public void validate(FacesContext context, UIComponent cmp, Object value)
+       throws ValidatorException {
+       ItemController ItemController = (ItemController) Component.getInstance("itemController");
+       return itemController.validate(value);
+     }
+     
+     }]]></programlisting>
+            
+            <programlisting role="XHTML"><![CDATA[<h:inputText value="#{shop.item}" validator="itemValidator" />]]></programlisting>
+               <para>
+                 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.
+               </para>
+           </listitem>
+       </varlistentry>
+     </variablelist>
+   </section>
+
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Controls.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Conversations.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Conversations.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Conversations.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+
+<chapter id="conversations">
+    <title>Conversations and workspace management</title>
+    
+    <para>
+        It's time to understand Seam's conversation model in more detail.
+    </para>
+    
+    <para>
+        Historically, the notion of a Seam "conversation" came about as
+        a merger of three different ideas:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            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.)
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            The idea of a workflow <emphasis>task</emphasis>.
+        </para>
+        </listitem>
+    </itemizedlist>
+    
+    <para>
+        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.
+    </para>
+    
+    <section>
+        <title>Seam's conversation model</title>
+    
+    <para>
+        The examples we have seen so far make use of a very simple
+        conversation model that follows these rules:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            When an <literal>@Begin</literal> method is encountered, 
+            the temporary conversation context is promoted to a long
+            running conversation.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            When an <literal>@End</literal> method is encountered, 
+            any long-running conversation context is demoted to a 
+            temporary conversation.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            If the JSF request lifecycle is foreshortened by a redirect,
+            Seam transparently stores and restores the current conversation 
+            context&#8212;unless the conversation was already ended via
+            <literal>@End(beforeRedirect=true)</literal>.
+        </para>
+        </listitem>
+    </itemizedlist>
+    
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<a href="main.jsf?conversationId=#{conversation.id}">Continue</a>]]></programlisting>
+        
+        <para>
+            Or, the more JSF-ish:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:outputLink value="main.jsf">
+    <f:param name="conversationId" value="#{conversation.id}"/>
+    <h:outputText value="Continue"/>
+</h:outputLink>]]></programlisting>
+
+        <para>
+            If you use the Seam tag library, this is equivalent:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h:outputLink value="main.jsf">
+    <s:conversationId/>
+    <h:outputText value="Continue"/>
+</h:outputLink>]]></programlisting>
+
+        <para>
+            If you wish to disable propagation of the conversation context for a
+            postback, a similar trick is used:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Exit">
+    <f:param name="conversationPropagation" value="none"/>
+</h:commandLink>]]></programlisting>
+
+        <para>
+            If you use the Seam tag library, this is equivalent:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Exit">
+    <s:conversationPropagation type="none"/>
+</h:commandLink>]]></programlisting>
+
+        <para>
+            Note that disabling conversation context propagation is absolutely not the
+            same thing as ending the conversation.
+        </para>
+        
+        <para>
+            The <literal>conversationPropagation</literal> request parameter, or 
+            the <literal>&lt;s:conversationPropagation&gt;</literal> tag may even
+            be used to begin and end conversation, or begin a nested 
+            conversation.
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Exit">
+    <s:conversationPropagation type="end"/>
+</h:commandLink>]]></programlisting>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Select Child">
+    <s:conversationPropagation type="nested"/>
+</h:commandLink>]]></programlisting>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Select Hotel">
+    <s:conversationPropagation type="begin"/>
+</h:commandLink>]]></programlisting>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="main" value="Select Hotel">
+    <s:conversationPropagation type="join"/>
+</h:commandLink>]]></programlisting>
+
+    <para>
+        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:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            The user is able to switch between many conversations
+            within the same browser window. This feature is called
+            <emphasis>workspace management</emphasis>.
+        </para>
+        </listitem>
+    </itemizedlist>
+    
+    </section>
+    
+    <section>
+        <title>Nested conversations</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            TODO: an example to show how a nested conversation prevents bad 
+            stuff happening when you backbutton.
+        </para>
+        
+        <para>
+            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>.
+        </para>
+        
+    </section>
+    
+    <section>
+        <title>Starting conversations with GET requests</title>
+        <para>
+            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>&lt;h:outputLink&gt;</literal>.
+        </para>
+        
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            If none of these options works for you, Seam lets you define a
+            <emphasis>page action</emphasis> in the <literal>pages.xml</literal>
+            file.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/messageList.jsp" action="#{messageManager.list}"/>
+    ...
+</pages>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/messageList.jsp" action="#{conversation.begin}"/>
+    ...
+</pages>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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>&lt;begin-conversation&gt;</literal> element.
+        </para>
+
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/messageList.jsp">
+       <begin-conversation nested="true" pageflow="AddItem"/>
+    <page>
+    ...
+</pages>]]></programlisting>
+
+        <para>
+            There is also an <literal>&lt;end-conversation&gt;</literal> 
+            element.
+        </para>
+
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/home.jsp">
+       <end-conversation/>
+    <page>
+    ...
+</pages>]]></programlisting>
+
+        <para>
+            To solve the first problem, we now have five options:
+        </para>
+        
+        <itemizedlist>
+            <listitem>
+            <para>
+                Annotate the <literal>@Create</literal> method with
+                <literal>@Begin</literal>
+            </para>
+            </listitem>
+            <listitem>
+            <para>
+                Annotate the <literal>@Factory</literal> method with
+                <literal>@Begin</literal>
+            </para>
+            </listitem>
+            <listitem>
+            <para>
+                Annotate the Seam page action method with
+                <literal>@Begin</literal>
+            </para>
+            </listitem>
+            <listitem>
+            <para>
+                Use <literal>&lt;begin-conversation&gt;</literal> in
+                <literal>pages.xml</literal>.
+            </para>
+            </listitem>
+            <listitem>
+            <para>
+                Use <literal>#{conversation.begin}</literal> as
+                the Seam page action method
+            </para>
+            </listitem>
+        </itemizedlist>
+        
+    </section>
+    
+    <section>
+        <title>Using <literal>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</literal></title>
+        
+        <para>
+            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>&lt;h:outputLink&gt;</literal>
+            if you need this functionality. But there are two major limitations to 
+            <literal>&lt;h:outputLink&gt;</literal>.
+        </para>
+        
+    <itemizedlist>
+        <listitem>
+        <para>
+            JSF provides no way to attach an action listener to an 
+            <literal>&lt;h:outputLink&gt;</literal>.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            JSF does not propagate the selected row of a <literal>DataModel</literal> 
+            since there is no actual form submission.
+        </para>
+        </listitem>
+    </itemizedlist>
+    
+        <para>
+            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&#8212;such as the 
+            Seam blog example application&#8212;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!
+        </para>
+        
+        <para>
+            To fill in this missing functionality, and to make conversation propagation
+            even simpler to manage, Seam provides the <literal>&lt;s:link&gt;</literal>
+            JSF tag.
+        </para>
+        
+        <para>
+            The link may specify just the JSF view id:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link view="/login.xhtml" value="Login"/>]]></programlisting>
+        
+        <para>
+            Or, it may specify an action method (in which case the action outcome determines
+            the page that results):
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link action="#{login.logout}" value="Logout"/>]]></programlisting>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link view="/loggedOut.xhtml"  action="#{login.logout}" value="Logout"/>]]></programlisting>
+        
+        <para>
+            The link automatically propagates the selected row of a <literal>DataModel</literal>
+            using inside <literal>&lt;h:dataTable&gt;</literal>:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link view="/hotel.xhtml" action="#{hotelSearch.selectHotel}" value="#{hotel.name}"/>]]></programlisting>
+        
+        <para>
+            You can leave the scope of an existing conversation:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link view="/main.xhtml" propagation="none"/>]]></programlisting>
+        
+        <para>
+            You can begin, end, or nest conversations:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link action="#{issueEditor.viewComment}" propagation="nest"/>]]></programlisting>
+        
+        <para>
+            If the link begins a conversation, you can even specify a pageflow to be used:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link action="#{documentEditor.getDocument}" propagation="begin"
+        pageflow="EditDocument"/>]]></programlisting>
+        
+        <para>
+            The <literal>taskInstance</literal> attribute is for use in jBPM task lists:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:link action="#{documentApproval.approveOrReject}" taskInstance="#{task}"/>]]></programlisting>
+        
+        <para>
+            (See the DVD Store demo application for examples of this.)
+        </para>
+        
+        <para>
+            Finally, if you need the "link" to be rendered as a button, use <literal>&lt;s:button&gt;</literal>:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<s:button action="#{login.logout}" value="Logout"/>]]></programlisting>
+        
+    </section>
+    
+    <section>
+        <title>Success messages</title>
+        <para>
+            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.
+        </para>
+        
+        <para>
+            The built in conversation-scoped Seam component named 
+            <literal>facesMessages</literal> solves this problem.
+            (You must have the Seam redirect filter installed.)
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("editDocumentAction")
+ at Stateless
+public class EditDocumentBean implements EditDocument {
+    @In EntityManager em;
+    @In Document document;
+    @In FacesMessages facesMessages;
+    
+    public String update() {
+        em.merge(document);
+        facesMessages.add("Document updated");
+    }
+}]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            You can even include JSF EL expressions in a faces message summary:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[facesMessages.add("Document #{document.title} was updated");]]></programlisting>
+                
+        <para>
+            You may display the messages in the usual way, for example:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:messages globalOnly="true"/>]]></programlisting>
+
+    </section>
+    
+    <section>
+        <title>Natural conversation ids</title>
+        <para>
+            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:
+        </para>
+        
+               <para>
+                  <emphasis>Easy redirect to existing conversation</emphasis>
+               </para>
+               <para>
+                  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>
+       		</para>
+               <para>
+                  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.
+               </para>
+           
+               <para>
+                  <emphasis>User friendly URLs</emphasis>
+               </para>
+               
+               <para>
+                  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.
+               </para>
+
+               <para>
+                  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.
+               </para>
+               
+               <para>
+                  Much better!
+               </para> 
+           
+       </section>
+        <section>
+            <title>Creating a natural conversation</title>        
+            <para>
+                Natural conversations are defined in <literal>pages.xml</literal>: 
+            </para>
+            
+            <programlisting role="XML"><![CDATA[  <conversation name="PlaceBid"
+                  parameter-name="auctionId"
+                  parameter-value="#{auction.auctionId}"/>]]></programlisting>
+                  
+            <para>
+                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.
+            </para>
+                
+            <para>
+                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.
+            </para>
+            
+            <para>
+                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.
+            </para>
+            
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[  <page view-id="/bid.xhtml" conversation="PlaceBid" login-required="true">
+      <navigation from-action="#{bidAction.confirmBid}">        
+          <rule if-outcome="success">
+              <redirect view-id="/auction.xhtml">
+                  <param name="id" value="#{bidAction.bid.auction.auctionId}"/>
+              </redirect>
+          </rule>        
+      </navigation>
+  </page>]]></programlisting>
+       
+        </section>
+        
+        <section>
+            <title>Redirecting to a natural conversation</title>
+            
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[  <page view-id="/auction.xhtml">
+    <param name="id" value="#{auctionDetail.selectedAuctionId}"/>
+       
+    <navigation from-action="#{bidAction.placeBid}">
+      <redirect view-id="/bid.xhtml"/>
+    </navigation>
+  </page>]]></programlisting>
+    
+            <para>
+                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:                
+            </para>
+            
+            <programlisting role="JAVA"><![CDATA[   @Begin(join = true)
+   public void placeBid()]]></programlisting>
+   
+            <para>
+                When named conversations are specified in the <literal>&lt;page/&gt;</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:
+            </para>
+            
+            <programlisting role="XHTML"><![CDATA[  <h:commandButton id="placeBidWithAmount" styleClass="placeBid" action="#{bidAction.placeBid}">
+    <s:conversationName value="PlaceBid"/>
+  </h:commandButton>]]></programlisting>
+  
+            <para>
+              Another alternative is to specify the <literal>conversationName</literal> attribute when
+              using either <literal>s:link</literal> or <literal>s:button</literal>:
+            </para>
+            
+            <programlisting role="XHTML"><![CDATA[  <s:link value="Place Bid" action="#{bidAction.placeBid}" conversationName="PlaceBid"/>]]></programlisting>
+        
+        </section>
+    
+    
+    <section>
+        <title>Workspace management</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <itemizedlist>
+            <listitem>
+            <para>
+                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.
+            </para>
+            </listitem>
+            <listitem>
+                <para>
+                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.
+                </para>
+            </listitem>
+        </itemizedlist>
+        
+        <section>
+            <title>Workspace management and JSF navigation</title>
+            <para>
+                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>:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/main.xhtml">
+        <description>Search hotels: #{hotelBooking.searchString}</description>
+    </page>
+    <page view-id="/hotel.xhtml">
+        <description>View hotel: #{hotel.name}</description>
+    </page>
+    <page view-id="/book.xhtml">
+        <description>Book hotel: #{hotel.name}</description>
+    </page>
+    <page view-id="/confirm.xhtml">
+        <description>Confirm: #{booking.description}</description>
+    </page>
+    </pages>]]></programlisting>
+            
+           <para>
+               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.
+           </para>
+
+        </section>
+        
+        <section>
+            <title>Workspace management and jPDL pageflow</title>
+            <para>
+                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>&lt;page&gt;</literal> node. The description
+                text is defined by the <literal>&lt;page&gt;</literal> 
+                node:
+            </para>
+            
+<programlisting role="XML"><![CDATA[<pageflow-definition name="shopping">
+
+   <start-state name="start">
+      <transition to="browse"/>
+   </start-state>
+   
+   <page name="browse" view-id="/browse.xhtml">
+      <description>DVD Search: #{search.searchPattern}</description>
+      <transition to="browse"/>
+      <transition name="checkout" to="checkout"/>
+   </page>
+   
+   <page name="checkout" view-id="/checkout.xhtml">
+      <description>Purchase: $#{cart.total}</description>
+      <transition to="checkout"/>
+      <transition name="complete" to="complete"/>
+   </page>
+   
+   <page name="complete" view-id="/complete.xhtml">
+      <end-conversation />
+   </page>
+   
+</pageflow-definition>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>The conversation switcher</title>
+            
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XHTML"><![CDATA[<h:selectOneMenu value="#{switcher.conversationIdOrOutcome}">
+    <f:selectItem itemLabel="Find Issues" itemValue="findIssue"/>
+    <f:selectItem itemLabel="Create Issue" itemValue="editIssue"/>
+    <f:selectItems value="#{switcher.selectItems}"/>
+</h:selectOneMenu>
+<h:commandButton action="#{switcher.select}" value="Switch"/>]]></programlisting>
+       
+            <para>
+                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.
+            </para>
+            
+            <para>
+                Only conversations with a description (specified in 
+                <literal>pages.xml</literal>) will be included in the drop-down 
+                menu.
+            </para>
+       
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/switcher.png" align="center"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/switcher.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+
+        </section>
+        
+        <section>
+            <title>The conversation list</title>
+            
+            <para>
+                The conversation list is very similar to the conversation switcher,
+                except that it is displayed as a table:
+            </para>
+            
+            <programlisting role="XHTML"><![CDATA[<h:dataTable value="#{conversationList}" var="entry"
+        rendered="#{not empty conversationList}">
+    <h:column>
+        <f:facet name="header">Workspace</f:facet>
+        <h:commandLink action="#{entry.select}" value="#{entry.description}"/>
+        <h:outputText value="[current]" rendered="#{entry.current}"/>
+    </h:column>
+    <h:column>
+        <f:facet name="header">Activity</f:facet>
+        <h:outputText value="#{entry.startDatetime}">
+            <f:convertDateTime type="time" pattern="hh:mm a"/>
+        </h:outputText>
+        <h:outputText value=" - "/>
+        <h:outputText value="#{entry.lastDatetime}">
+            <f:convertDateTime type="time" pattern="hh:mm a"/>
+        </h:outputText>
+    </h:column>
+    <h:column>
+        <f:facet name="header">Action</f:facet>
+        <h:commandButton action="#{entry.select}" value="#{msg.Switch}"/>
+        <h:commandButton action="#{entry.destroy}" value="#{msg.Destroy}"/>
+    </h:column>
+</h:dataTable>]]></programlisting>
+
+            <para>
+                We imagine that you will want to customize this for your own application.
+            </para>
+            
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/list.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/list.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+        
+            <para>
+                Only conversations with a description will be included in the
+                list.
+            </para>
+            
+            <para>
+                Notice that the conversation list lets the user destroy workspaces.
+            </para>
+
+        </section>
+        
+        <section>
+            <title>Breadcrumbs</title>
+            
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XHTML"><![CDATA[<ui:repeat value="#{conversationStack}" var="entry">
+    <h:outputText value=" | "/> 
+    <h:commandLink value="#{entry.description}" action="#{entry.select}"/>
+</ui:repeat]]></programlisting>
+            
+            <mediaobject>
+              <imageobject role="fo">
+                <imagedata fileref="images/breadcrumbs.png" align="center" scalefit="1"/>
+              </imageobject>
+              <imageobject role="html">
+                <imagedata fileref="images/breadcrumbs.png" align="center"/>
+              </imageobject>
+            </mediaobject>
+            
+        </section>
+    </section>
+    
+    <section>
+        <title>Conversational components and JSF component bindings</title>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("grid")
+ at Scope(ScopeType.EVENT)
+public class Grid
+{
+    private HtmlPanelGrid htmlPanelGrid;
+
+    // getters and setters
+    ...
+}]]></programlisting>
+
+
+        <programlisting role="JAVA"><![CDATA[@Name("gridEditor")
+ at Scope(ScopeType.CONVERSATION)
+public class GridEditor
+{
+    @In(required=false)
+    private Grid grid;
+    
+    ...
+}]]></programlisting>
+
+       <para>
+         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>. 
+       </para>
+
+       <para>
+          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:
+       </para>
+
+        <programlisting role="XHTML"><![CDATA[
+<h:dataTable id="lineItemTable" var="lineItem" value="#{orderHome.lineItems}">
+   <h:column>
+      Row: #{uiComponent['lineItemTable'].rowIndex}
+   </h:column>
+   ...
+</h:dataTable>]]></programlisting>
+
+       <para>
+          JSF UI components are available with their client identifier in this map.
+       </para>
+
+    </section>
+    
+    <section>
+      <title>Concurrent calls to conversational components</title>
+      
+      <para>
+        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 
+        &#8212; 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 &#8212; and we'll
+        look at the options RichFaces gives you.
+      </para>
+    
+      <para>
+        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 &#8212; 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. 
+      </para>
+      
+      <para>
+        Therefore, when you are working inside a long running conversation,
+        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!
+      </para>
+      
+      <para>
+        We can set a sensible default for the concurrent request timeout (in 
+        ms) in components.xml:
+      </para>
+      
+      <programlisting role="XML"><![CDATA[<core:manager concurrent-request-timeout="500" />]]></programlisting>
+     
+      <para>
+        We can also fine tune the concurrent request timeout on a page-by-page
+        basis:
+      </para>
+       
+      <programlisting role="XML"><![CDATA[<page view-id="/book.xhtml" 
+         conversation-required="true" 
+         login-required="true"
+         concurrent-request-timeout="2000" />]]></programlisting>
+
+    <para>
+      So far we've discussed serial 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? 
+    </para>
+    <para>
+      For heavy computation we should use a truly asynchronous (poll based) 
+      approach &#8212; 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).
+    </para>
+    
+    <section>
+      <title>How should we design our conversational AJAX application?</title>
+    
+    <para>
+      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.
+    </para>
+    
+    <para>
+      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.
+    </para>
+    
+    <para>
+      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.
+    </para>
+    
+    <para>
+      Using a poll-style design requires less fine-tuning.  You just mark your
+      action method <literal>@Asynchronous</literal> and decide on a polling
+      interval:
+    </para>
+    
+    <programlisting role="JAVA"><![CDATA[int total;
+
+// This method is called when an event occurs on the client
+// It takes a really long time to execute
+ at Asynchronous      
+public void calculateTotal() {
+   total = someReallyComplicatedCalculation();
+}
+
+// This method is called as the result of the poll
+// It's very quick to execute
+public int getTotal() {
+   return total;
+}]]></programlisting>
+      </section>
+      
+      <section>
+        <title>Dealing with errors</title>
+        
+        <para>
+          However carefully you design your application to queue concurrent
+          requests to your conversational component, there is a risk that the
+          server will become overloaded and be unable to process all the
+          requests before the request will have to wait longer than the 
+          <literal>concurrent-request-timeout</literal>. In this case Seam will
+          throw a <literal>ConcurrentRequestTimeoutException</literal> which can
+          be handled in <literal>pages.xml</literal>. We recommend sending an
+          HTTP 503 error: 
+        </para>
+        
+        <programlisting role="XML"><![CDATA[   <exception class="org.jboss.seam.ConcurrentRequestTimeoutException" logLevel="trace">
+      <http-error error-code="503" />
+   </exception>]]></programlisting>
+        
+        <note>
+          <title>503 Service Unavailable (HTTP/1.1 RFC)</title>
+          
+          <para>
+            The server is currently unable to handle the request due to a 
+            temporary overloading or maintenance of the server. The implication 
+            is that this is a temporary condition which will be alleviated after 
+            some delay.
+          </para>
+        </note>
+        
+        <para>
+          Alternatively you could redirect to an error page:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<exception class="org.jboss.seam.ConcurrentRequestTimeoutException" logLevel="trace">
+   <end-conversation/>
+   <redirect view-id="/error.xhtml">
+      <message>The server is too busy to process your request, please try again later</message>
+   </redirect>
+</exception>]]></programlisting>
+        
+        <para>
+           ICEfaces, RichFaces Ajax and Seam Remoting can all handle HTTP error
+           codes. Seam Remoting will pop up a dialog box showing the HTTP error
+           and ICEfaces will indicate the error in it's connection status 
+           component. RichFaces Ajax provides the most complete support for
+           handling HTTP errors by providing a user definable callback. For
+           example, to show the error message to the user: 
+        </para>
+        
+        <programlisting><![CDATA[<script type="text/javascript">
+   A4J.AJAX.onError = function(req,status,message) { 
+      alert("message");    
+   };
+</script>]]></programlisting>
+      </section>
+      
+      <section>
+        <title>RichFaces Ajax</title>
+    
+        <para>
+           RichFaces Ajax is the AJAX library most commonly used with Seam, and
+          provides all the controls discussed above:
+        </para>
+      
+        <itemizedlist>
+          <listitem>
+            <para>
+              <literal>eventsQueue</literal> &#8212; 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.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>ignoreDupResponses</literal> &#8212; 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 &#8212; just prevents unnecessary updates on the client side.
+            </para>
+            <para>
+              This option should be used with care with Seam's conversations as
+              it allows multiple concurrent requests to be made.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>requestDelay</literal> &#8212; 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).
+            </para>
+            <para>
+              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.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>&lt;a:poll reRender="total" interval="1000" /&gt;</literal> &#8212;
+              Polls the server, and rerenders an area as needed
+            </para>
+          </listitem>
+        </itemizedlist>
+      </section>
+  </section>
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Conversations.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Dependencies.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Dependencies.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Dependencies.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1015 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="dependencies">
+  <title>Dependencies</title>
+  
+  <section id="jdk_dependencies">
+    <title>JDK Dependencies</title>
+    
+    <para>
+      Seam does not work with JDK 1.4 and requires JDK 5 or above as it uses 
+      annotations and other JDK 5.0 features..  Seam has been thoroughly tested 
+      using Sun's JDKs.  However there are no known issues specific to Seam with
+      other JDK's.
+    </para>
+    
+    <section id="jdk6_dependencies">
+        <title>Sun's JDK 6 Considerations</title>
+        <para>
+            Earlier versions of Sun's JDK 6 contained an incompatible 
+            version of JAXB and required overriding it using the "endorsed" 
+            directory.  Sun's JDK6 Update 4 release upgraded to JAXB 2.1 and 
+            removed this requirement.  When building, testing, or executing be
+            sure to use this version or higher. 
+        </para>
+        
+        <para>
+            Seam used JBoss Embedded in its unit and integration testing.  This
+            has an additional requirement when using JDK 6. In order to run 
+            JBoss Embedded with JDK 6 you need to set the following JVM argument:
+            
+            <programlisting>-Dsun.lang.ClassLoader.allowArraySyntax=true</programlisting>
+            
+            Seam's internal build system is setting this by default when it 
+            executes Seam's test suite.  However if you are also using JBoss
+            Embedded for your testing you will need to set this value. 
+        </para>
+    </section>    
+  </section>
+  
+  <section>
+    <title>Project Dependencies</title>
+
+    <para>
+      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 EAP 4.3).
+    </para>
+    
+    <para>
+      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>.
+    </para>
+    
+    <section>
+      <title>Core</title>
+  
+      <para>
+      <table><title></title>
+        <tgroup cols="4">
+      <!--    <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>            
+     
+            <row>
+              <entry>
+                <para><literal>jboss-seam.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>all</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>The core Seam library, always required.</para>
+              </entry>
+            </row>
+  
+            <row>
+              <entry>
+                <para><literal>jboss-seam-debug.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Include during development when enabling Seam's debug feature</para>
+              </entry>
+            </row>         
+            
+            <row>
+              <entry>
+                <para><literal>jboss-seam-ioc.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required when using Seam with Spring</para>
+              </entry>
+            </row>   
+  
+            <row>
+              <entry>
+                <para><literal>jboss-seam-pdf.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required when using Seam's PDF features</para>
+              </entry>
+            </row>                  
+            
+            <row>
+              <entry>
+                <para><literal>jboss-seam-remoting.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required when using Seam Remoting</para>
+              </entry>
+            </row>                         
+            
+            <row>
+              <entry>
+                <para><literal>jboss-seam-ui.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required to use the Seam JSF controls</para>
+              </entry>
+            </row>        
+            
+            <row>
+              <entry>
+                <para><literal>jsf-api.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>provided</para>
+              </entry>
+              <entry align="center">
+          <!--      <para></para> -->
+              </entry>
+              <entry>
+                <para>JSF API</para>
+              </entry>
+            </row>         
+            
+            <row>
+              <entry>
+                <para><literal>jsf-impl.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>provided</para>
+              </entry>
+              <entry align="center">
+         <!--       <para></para> -->
+              </entry>
+              <entry>
+                <para>JSF Reference Implementation</para>
+              </entry>
+            </row>   
+            
+            <row>
+              <entry>
+                <para><literal>jsf-facelets.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Facelets</para>
+              </entry>
+            </row>    
+            
+            <row>
+              <entry>
+                <para><literal>urlrewrite.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>URL Rewrite library</para>
+              </entry>
+            </row>      
+                        
+            <row>
+              <entry>
+                <para><literal>quartz.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>Required when you wish to use Quartz with Seam's asynchronous features</para>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+</para>
+
+    </section>
+    
+    <section>
+      <title>RichFaces</title>
+  
+      <table>
+        <title>RichFaces dependencies</title>
+     
+        <tgroup cols="4">
+		<!--    <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>
+          
+            <row>
+              <entry>
+                <para><literal>richfaces-api.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>all</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>
+                  Required to use RichFaces.  Provides API classes that you may
+                  wish to use from your application e.g. to create a tree
+                </para>
+              </entry>
+            </row>  
+            
+            <row>
+              <entry>
+                <para><literal>richfaces-impl.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required to use RichFaces.</para>
+              </entry>
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>richfaces-ui.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required to use RichFaces.  Provides all the UI components.</para>
+              </entry>
+            </row>                        
+            
+          </tbody>
+        </tgroup>
+      </table>
+    </section> 
+    
+    <section>
+      <title>Seam Mail</title>    
+  
+      <table>
+        <title>Seam Mail Dependencies</title>
+     
+        <tgroup cols="4">
+		<!--     <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>            
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>
+    
+            <row>
+              <entry>
+                <para><literal>activation.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>Required for attachment support</para>
+              </entry>
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>mail.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>Required for outgoing mail support</para>
+              </entry>
+            </row>    
+            
+            <row>
+              <entry>
+                <para><literal>mail-ra.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>compile only</para>
+              </entry>
+              <entry align="center">
+          <!--      <para></para> -->
+              </entry>
+              <entry>
+                <para>Required for incoming mail support</para>
+                <para>mail-ra.rar should be deployed to the application server
+                at runtime</para>
+              </entry>
+            </row>                  
+            
+            <row>
+              <entry>
+                <para><literal>jboss-seam-mail.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Seam Mail</para>
+              </entry>
+            </row>            
+            
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    
+    <section>
+      <title>Seam PDF</title>    
+  
+      <table>
+        <title>Seam PDF Dependencies</title>
+     
+        <tgroup cols="4">
+		<!--       <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>            
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>
+    
+            <row>
+              <entry>
+                <para><literal>itext.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>PDF Library</para>
+              </entry>
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>jfreechart.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Charting library</para>
+              </entry>
+            </row>         
+            
+            <row>
+              <entry>
+                <para><literal>jcommon.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Required by JFreeChart</para>
+              </entry>
+            </row>            
+            
+            <row>
+              <entry>
+                <para><literal>jboss-seam-pdf.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>Seam PDF core library</para>
+              </entry>
+            </row>                
+            
+          </tbody>
+        </tgroup>
+      </table>
+    </section>  
+    
+    <section>
+      <title>JBoss Rules</title>
+      
+      <para>
+        The JBoss Rules libraries can be found in the <literal>drools/lib</literal> directory in Seam.
+      </para>
+      
+      <table>
+        <title>JBoss Rules Dependencies</title>
+     
+        <tgroup cols="4">
+		<!--     <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>            
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>
+    
+            <row>
+              <entry>
+                <para><literal>antlr-runtime.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>ANTLR Runtime Library</para>
+              </entry>
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>core.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>Eclipse JDT</para>
+              </entry>
+            </row>          
+            
+            <row>
+              <entry>
+                <para><literal>drools-compiler.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+		      <!--    <para></para> -->
+              </entry> 
+            </row>          
+            
+            <row>
+              <entry>
+                <para><literal>drools-core.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+		      <!--     <para></para> -->
+              </entry> 
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>janino.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+             <entry>
+		     <!--     <para></para> -->
+              </entry> 
+            </row>
+            
+            <row>
+              <entry>
+                <para><literal>mvel.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+		      <!--    <para></para> -->
+              </entry> 
+            </row>
+    
+          </tbody>
+        </tgroup>
+      </table>
+      
+    </section>    
+    
+    <section>
+      <title>JBPM</title>
+      
+      <table>
+        <title>JBPM dependencies</title>
+     
+        <tgroup cols="4">
+		<!--      <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>    
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>
+    
+            <row>
+              <entry>
+                <para><literal>jbpm-jpdl.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+		      <!--       <para></para> -->
+              </entry> 
+            </row>
+    
+          </tbody>
+        </tgroup>
+      </table>
+      
+    </section>
+    
+    <section>
+      <title>GWT</title>
+      
+      <para>
+        These libraries are required if you with to use the Google Web Toolkit (GWT) with your Seam application.
+      </para>
+      
+      <note>
+        <title>Technology preview </title>    
+    	<para>GWT in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+      </note>
+      
+      <table>
+        <title>GWT dependencies</title>
+     
+        <tgroup cols="4">
+		<!--     <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>    
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>    
+            <row>
+              <entry>
+                <para><literal>gwt-servlet.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>war</para>
+              </entry>
+              <entry>
+                <para>The GWT Servlet libs</para>
+              </entry>
+            </row>
+    
+          </tbody>
+        </tgroup>
+      </table>
+      
+    </section>        
+    
+    <section>
+      <title>Spring</title>
+      
+      <para>
+        These libraries are required if you with to use the Spring Framework with your Seam application.
+      </para>
+      
+      <note>
+        <title>Technology preview </title>    
+    	<para>Spring integration in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+      </note>
+      
+      <table>
+        <title>Spring Framework dependencies</title>
+     
+        <tgroup cols="4">
+		<!--        <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+    
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>    
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>    
+            <row>
+              <entry>
+                <para><literal>spring.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>The Spring Framework library</para>
+              </entry>
+            </row>
+    
+          </tbody>
+        </tgroup>
+      </table>
+      
+    </section>     
+    
+    <section>
+      <title>Groovy</title>
+      
+      <para>
+        These libraries are required if you with to use Groovy with your Seam application.
+      </para>
+      
+      <note>
+        <title>Technology preview </title>    
+    	<para>Groovy integration in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+      </note>
+      
+      <table>
+        <title>Groovy dependencies</title>
+     
+        <tgroup cols="4">
+		<!--     <colspec colnum="1" colwidth="4*" />
+          <colspec colnum="2" colwidth="2*" />
+          <colspec colnum="3" colwidth="3*" />
+          <colspec colnum="4" colwidth="5*" /> -->
+     
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Name</para>
+              </entry>
+              <entry align="center">
+                <para>Scope</para>
+              </entry>
+              <entry align="center">
+                <para>Type</para>
+              </entry>    
+              <entry align="center">
+                <para>Notes</para>
+              </entry>
+            </row>
+          </thead>
+    
+          <tbody>    
+            <row>
+              <entry>
+                <para><literal>groovy-all.jar</literal></para>
+              </entry>
+              <entry align="center">
+                <para>runtime</para>
+              </entry>
+              <entry align="center">
+                <para>ear</para>
+              </entry>
+              <entry>
+                <para>The Groovy libs</para>
+              </entry>
+            </row>
+    
+          </tbody>
+        </tgroup>
+      </table>
+      
+    </section>
+  </section>  
+    
+  <section>
+    <title>Dependency Management using Maven</title>
+
+  
+  <para>
+    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.
+  </para>
+  
+  <para>
+    We aren't actually going to discuss how to use Maven here, but just run
+    over some basic POMs you could use.
+  </para> 
+
+   <para>
+     Released versions of Seam are available in http://repository.jboss.org/maven2
+     and nightly snapshots are available in http://snapshots.jboss.org/maven2.
+   </para>
+
+   <para>
+     All the Seam artifacts are available in Maven:
+   </para>
+
+    <programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam</artifactId>
+</dependency>]]></programlisting>
+
+<programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam-ui</artifactId>
+</dependency>]]></programlisting>
+
+<programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam-pdf</artifactId>
+</dependency>]]></programlisting>
+
+<programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam-remoting</artifactId>
+</dependency>]]></programlisting>
+
+<programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam-ioc</artifactId>
+</dependency>]]></programlisting>
+
+<programlisting role="XML"><![CDATA[<dependency>
+  <groupId>org.jboss.seam</groupId>
+  <artifactId>jboss-seam-ioc</artifactId>
+</dependency>]]></programlisting>
+
+  <para>
+    This sample POM will give you Seam, JPA (provided by Hibernate) and 
+    Hibernate Validator:
+  </para> 
+
+<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.seam.example/groupId>
+  <artifactId>my-project</artifactId>
+  <version>1.0</version>
+  <name>My Seam Project</name>
+  <packaging>jar</packaging>
+  <repositories>
+    <repository>
+      <id>repository.jboss.org</id>
+      <name>JBoss Repository</name>
+      <url>http://repository.jboss.org/maven2</url>
+    </repository>
+  </repositories>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-validator</artifactId>
+      <version>3.0.0.GA</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-annotations</artifactId>
+      <version>3.3.0.ga</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-entitymanager</artifactId>
+      <version>3.3.1.ga</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.seam</groupId>
+      <artifactId>jboss-seam</artifactId>
+      <version>2.0.0.GA</version>
+    </dependency>
+    
+  </dependencies>
+
+</project>]]></programlisting>
+
+</section>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Dependencies.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Drools.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Drools.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Drools.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="drools">
+    <title>Seam and JBoss Rules</title>
+    
+    <para>
+        Seam makes it easy to call JBoss Rules (Drools) rulebases from Seam
+        components or jBPM process definitions.
+    </para>
+    
+    <section>
+        <title>Installing rules</title>
+        
+        <para>
+            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>:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<drools:rule-base name="policyPricingRules">
+    <drools:rule-files>
+        <value>policyPricingRules.drl</value>
+    </drools:rule-files>
+</drools:rule-base>]]></programlisting>
+
+         <para>
+             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.
+         </para>
+         
+         <para>
+             If you want to use a Drools DSL, you alse need to specify the DSL
+             definition:
+         </para>
+         
+        <programlisting role="XML"><![CDATA[<drools:rule-base name="policyPricingRules" dsl-file="policyPricing.dsl">
+    <drools:rule-files>
+        <value>policyPricingRules.drl</value>
+    </drools:rule-files>
+</drools:rule-base>]]></programlisting>
+
+        <para>
+        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>:
+        </para>
+        
+                <programlisting role="XML"><![CDATA[<drools:rule-agent name="insuranceRules" 
+                    configurationFile="/WEB-INF/deployedrules.properties" />]]></programlisting>
+        
+        <para>The properties file contains properties specific to the RulesAgent. Here is an example configuration file from the
+        Drools example distribution.</para>
+        
+                <programlisting>newInstance=true
+url=http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org.acme.insurance/fmeyer
+localCacheDir=/Users/fernandomeyer/projects/jbossrules/drools-examples/drools-examples-brms/cache
+poll=30
+name=insuranceconfig</programlisting>
+        
+        
+        <para>It is also possible to configure the options on the component directly, bypassing the configuration file.</para>
+
+       <programlisting role="XML"><![CDATA[<drools:rule-agent name="insuranceRules"
+   url="http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org.acme.insurance/fmeyer"
+   local-cache-dir="/Users/fernandomeyer/projects/jbossrules/drools-examples/drools-examples-brms/cache"
+   poll="30"
+   configuration-name="insuranceconfig" />]]></programlisting>
+        
+         <para>
+             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.)
+         </para>
+        
+         <programlisting role="XML"><![CDATA[<drools:managed-working-memory name="policyPricingWorkingMemory" auto-create="true" rule-base="#{policyPricingRules}"/>]]></programlisting>
+
+         <para>
+             Notice that we gave the <literal>policyPricingWorkingMemory</literal> a
+             reference back to our rule base via the <literal>ruleBase</literal>
+             configuration property.
+         </para>
+         
+     </section>
+     
+     <section>
+         <title>Using rules from a Seam component</title>
+         
+         <para>
+             We can now inject our <literal>WorkingMemory</literal> into any Seam component,
+             assert facts, and fire rules:
+         </para>
+         
+         <programlisting role="JAVA"><![CDATA[@In WorkingMemory policyPricingWorkingMemory;
+
+ at In Policy policy;
+ at In Customer customer;
+
+public void pricePolicy() throws FactException
+{
+    policyPricingWorkingMemory.assertObject(policy);
+    policyPricingWorkingMemory.assertObject(customer);
+    policyPricingWorkingMemory.fireAllRules();
+}]]></programlisting>
+     
+     </section>
+     
+     <section>
+         <title>Using rules from a jBPM process definition</title>
+         
+         <para>
+             You can even allow a rule base to act as a jBPM action handler, decision
+             handler, or assignment handler&#8212;in either a pageflow or business
+             process definition.
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<decision name="approval">
+         
+    <handler class="org.jboss.seam.drools.DroolsDecisionHandler">
+        <workingMemoryName>orderApprovalRulesWorkingMemory</workingMemoryName>
+        <assertObjects>
+            <element>#{customer}</element>
+            <element>#{order}</element>
+            <element>#{order.lineItems}</element>
+        </assertObjects>
+    </handler>
+    
+    <transition name="approved" to="ship">
+        <action class="org.jboss.seam.drools.DroolsActionHandler">
+            <workingMemoryName>shippingRulesWorkingMemory</workingMemoryName>
+            <assertObjects>
+                <element>#{customer}</element>
+                <element>#{order}</element>
+                <element>#{order.lineItems}</element>
+            </assertObjects>
+        </action>
+    </transition>
+    
+    <transition name="rejected" to="cancelled"/>
+    
+</decision>]]></programlisting>
+
+         <para>
+             The <literal>&lt;assertObjects&gt;</literal> element specifies EL expressions that
+             return an object or collection of objects to be asserted as facts into the 
+             <literal>WorkingMemory</literal>.
+         </para>
+         
+         <para>
+             There is also support for using Drools for jBPM task assignments:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<task-node name="review">
+    <task name="review" description="Review Order">
+        <assignment handler="org.jboss.seam.drools.DroolsAssignmentHandler">
+            <workingMemoryName>orderApprovalRulesWorkingMemory</workingMemoryName>
+            <assertObjects>
+                <element>#{actor}</element>
+                <element>#{customer}</element>
+                <element>#{order}</element>
+                <element>#{order.lineItems}</element>
+            </assertObjects>
+        </assignment>
+    </task>
+    <transition name="rejected" to="cancelled"/>
+    <transition name="approved" to="approved"/>
+</task-node>]]></programlisting>
+
+         <para>
+             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>.
+         </para>
+         
+         <programlisting><![CDATA[package org.jboss.seam.examples.shop
+
+import org.jboss.seam.drools.Decision
+
+global Decision decision
+
+rule "Approve Order For Loyal Customer"
+  when
+    Customer( loyaltyStatus == "GOLD" )
+    Order( totalAmount <= 10000 )
+  then
+    decision.setOutcome("approved");
+end]]></programlisting>
+
+         <programlisting><![CDATA[package org.jboss.seam.examples.shop
+
+import org.jbpm.taskmgmt.exe.Assignable
+
+global Assignable assignable
+
+rule "Assign Review For Small Order"
+  when
+    Order( totalAmount <= 100 )
+  then
+    assignable.setPooledActors( new String[] {"reviewers"} );
+end]]></programlisting>
+
+     </section>
+     
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Drools.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Elenhancements.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Elenhancements.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Elenhancements.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="elenhancements">
+   <title>JBoss EL</title>
+   
+   <para>
+      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. 
+   </para>
+   
+   <section>
+      <title>Parameterized Expressions</title>
+   
+      <para>
+         Standard EL does not allow you to use a method with user defined 
+         parameters &#8212; of course, JSF listener methods (e.g. a 
+         <literal>valueChangeListener</literal>) take parameters provided by JSF. 
+      </para>
+      
+      <para> 
+         JBoss EL removes this restriction. For example: 
+      </para>
+      
+      <programlisting role="XHTML"><![CDATA[<h:commandButton action="#{hotelBooking.bookHotel(hotel)}" value="Book Hotel"/>]]></programlisting>
+      
+      <programlisting role="JAVA"><![CDATA[@Name("hotelBooking")
+public class HotelBooking {
+   
+   public String bookHotel(Hotel hotel) {
+      // Book the hotel
+   }
+}]]></programlisting>
+      
+      <section>
+         <title>Usage</title>
+      
+         <para>
+            Just as in calls to method from Java, parameters are surrounded by 
+            parentheses, and separated by commas: 
+         </para>
+         
+         <programlisting role="XHTML"><![CDATA[<h:commandButton action="#{hotelBooking.bookHotel(hotel, user)}" value="Book Hotel"/>]]></programlisting>
+         
+         <para> 
+            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. 
+         </para>
+         <para>
+            Any value expression may be used as a parameter: 
+         </para>
+         
+         <programlisting role="XHTML"><![CDATA[<h:commandButton 
+   action="#{hotelBooking.bookHotel(hotel.id, user.username)}" 
+   value="Book Hotel"/>]]></programlisting>
+         
+         <para>
+            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! 
+         </para>
+         
+         <para>
+            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! 
+         </para>
+         
+         <para>
+            You can also pass literal strings using single quotes: 
+         </para>
+         
+         <programlisting role="XHTML"><![CDATA[<h:commandLink action="#{printer.println('Hello world!')}" value="Hello"/>]]></programlisting>
+         
+         <para> 
+            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. 
+         </para>
+         
+         <para>
+            JBoss EL removes this restriction by allowing values to be retrieved
+            using the method syntax. For example: 
+         </para>
+         
+         <programlisting role="XHTML"><![CDATA[<h:outputText value="#{person.name}" rendered="#{person.name.length() > 5}" />]]></programlisting>
+         
+         <para>
+            You can access the size of a collection in a similar manner: 
+         </para>
+         
+         <programlisting>#{searchResults.size()}</programlisting>
+         
+         <para>
+            In general any expression of the form #{obj.property} would be 
+            identical to the expression #{obj.getProperty()}. 
+         </para>
+         <para>
+            Parameters are also allowed. The following example calls the
+            <literal>productsByColorMethod</literal> with a literal string 
+            argument: 
+         </para>
+         
+         <programlisting>#{controller.productsByColor('blue')}</programlisting>
+         
+      </section>
+      
+      <section>
+         <title>Limitations and Hints</title>
+         
+         <para> 
+            When using JBoss EL you should keep the following points in mind: 
+         </para>
+         
+         <itemizedlist>
+            <listitem>
+               <para>
+                  <emphasis>Incompatibility with JSP 2.1</emphasis> &#8212; 
+                  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. 
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  <emphasis>Use inside iterative components</emphasis> &#8212; 
+                  Components like <literal>&lt;c:forEach /&gt;</literal> and 
+                  <literal>&lt;ui:repeat /&gt;</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>&lt;h:commandButton /&gt;</literal> or 
+                  <literal>&lt;h:commandLink /&gt;</literal>: 
+               </para>
+               <programlisting role="JAVA"><![CDATA[@Factory("items")
+public List<Item> getItems() {
+   return entityManager.createQuery("select ...").getResultList();
+}]]></programlisting>
+               <programlisting role="XHTML"><![CDATA[<h:dataTable value="#{items}" var="item">
+   <h:column>
+      <h:commandLink value="Select #{item.name}" action="#{itemSelector.select(item})" />
+   </h:column>
+</h:dataTable>]]></programlisting>
+               <para>
+                  However if you want to use <literal>&lt;s:link /&gt;</literal>
+                  or <literal>&lt;s:button /&gt;</literal> you 
+                  <emphasis>must</emphasis> expose the items as a 
+                  <literal>DataModel</literal>, and use a 
+                  <literal>&lt;dataTable /&gt;</literal> (or equivalent from a 
+                  component set like <literal>&lt;rich:dataTable /&gt;</literal>
+                  ). Neither <literal>&lt;s:link /&gt;</literal> or 
+                  <literal>&lt;s:button /&gt;</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.
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  <emphasis>Calling a <literal>MethodExpression</literal> from 
+                  Java code</emphasis> &#8212; 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: 
+               </para>
+               
+               <itemizedlist>
+                  <listitem>
+                     <para> 
+                        When you invoke a <literal>MethodExpression</literal> in
+                        Java code, parameters you pass may be ignored. 
+                        Parameters defined in the expression will take 
+                        precedence. 
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        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>. 
+                     </para>
+                  </listitem>
+               </itemizedlist>
+               
+               <para>
+                  Both of these cases are exceedingly rare and only apply when 
+                  you want to invoke the <literal>MethodExpression</literal> by 
+                  hand in Java code. 
+               </para>
+            </listitem>
+         </itemizedlist>
+      </section>
+   </section>
+   
+   <section>
+      <title>Projection</title>
+   
+      <para>
+         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: 
+      </para>
+      
+      <programlisting>#{company.departments}</programlisting>
+      
+      <para>
+         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: 
+      </para>
+      
+      <programlisting>#{company.departments.{d|d.name}}</programlisting>
+      
+      <para>
+         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. 
+      </para>
+      
+      <para>
+         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: 
+      </para>
+      
+      <programlisting>#{company.departments.{d|d.size()}}</programlisting>
+      
+      <para>
+         Projections can be nested. The following expression returns the last 
+         names of every employee in every department: 
+      </para>
+      
+      <programlisting>#{company.departments.{d|d.employees.{emp|emp.lastName}}}</programlisting>
+      
+      <para> 
+         Nested projections can be slightly tricky, however. The following 
+         expression looks like it returns a list of all the employees in all the 
+         departments:
+      </para>
+      
+      <programlisting>#{company.departments.{d|d.employees}}</programlisting>
+      
+      <para>
+         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: 
+      </para>
+      
+      <programlisting>#{company.departments.{d|d.employees.{e|e}}}</programlisting>
+      
+      <para> 
+         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. 
+      </para>
+      
+   </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Elenhancements.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Events.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Events.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Events.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1074 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+
+<chapter id="events">
+    <title>Events, interceptors and exception handling</title>
+
+    <para>
+        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.
+    </para>
+
+    <section>
+        <title>Seam events</title>
+        <para>
+            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:
+        </para>
+        
+        <itemizedlist>
+            <listitem>
+                <para>JSF events</para>
+            </listitem>
+            <listitem>
+                <para>jBPM transition events</para>
+            </listitem>
+            <listitem>
+                <para>Seam page actions</para>
+            </listitem>
+            <listitem>
+                <para>Seam component-driven events</para>
+            </listitem>
+            <listitem>
+                <para>Seam contextual events</para>
+            </listitem>
+        </itemizedlist>
+        
+        <para>
+            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:
+        </para>        
+        
+        <programlisting role="XHTML"><![CDATA[<h:commandButton value="Click me!" action="#{helloWorld.sayHello}"/>]]></programlisting>
+        
+
+
+        <para>
+            For a jBPM transition event, it is specified in the jBPM process definition or
+            pageflow definition:
+        </para>
+                
+        <programlisting role="XML"><![CDATA[<start-page name="hello" view-id="/hello.jsp">
+    <transition to="hello">
+        <action expression="#{helloWorld.sayHello}"/>
+    </transition>
+</start-page>]]></programlisting>
+
+        <para>
+            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.
+    </para>
+</section>
+
+        <section>
+            <title>Page actions</title>
+
+        <para>
+            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:
+        </para>
+       
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/hello.jsp" action="#{helloWorld.sayHello}"/>
+</pages>]]></programlisting>
+
+        <para>
+            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:
+        </para>
+       
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/hello/*" action="#{helloWorld.sayHello}"/>
+</pages>]]></programlisting>
+
+        <para>
+            If multiple wildcarded page actions match the current view-id, Seam
+            will call all the actions, in order of least-specific to most-specific.
+        </para>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            Furthermore, the view id mentioned in the <literal>&lt;page&gt;</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:
+        </para> 
+        
+        <programlisting><![CDATA[TODO: translate struts action into page action]]></programlisting>
+
+
+        <para>
+            This is quite useful if you want to do complex things in response to non-faces
+            requests (for example, HTTP GET requests).
+        </para>
+        
+        <para>
+            Multiple or conditional page actions my be specified using the <literal>&lt;action&gt;</literal>
+            tag:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/hello.jsp">
+        <action execute="#{helloWorld.sayHello}" if="#{not validation.failed}"/>
+        <action execute="#{hitCount.increment}"/>
+    </page>
+</pages>]]></programlisting>
+
+
+</section>
+	
+        <section>
+            <title>Page parameters</title>
+            
+            <para>
+                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!
+            </para>
+            
+            <para>
+                Since GET requests are bookmarkable, page parameters are passed as 
+                human-readable request parameters. (Unlike JSF form inputs, which are
+                anything but!) 
+            </para>
+            
+            <para>
+                You can use page parameters with or without an action method.
+            </para>
+            
+            <section>
+                <title>Mapping request parameters to the model</title>
+            
+              <para>
+                  Seam lets us provide a value binding that maps a named request parameter 
+                  to an attribute of a model object.
+              </para>
+              
+          <programlisting role="XML"><![CDATA[<pages>
+      <page view-id="/hello.jsp" action="#{helloWorld.sayHello}">
+          <param name="firstName" value="#{person.firstName}"/>
+          <param name="lastName" value="#{person.lastName}"/>
+      </page>
+  </pages>]]></programlisting>
+
+              <para>
+                  The <literal>&lt;param&gt;</literal> declaration is bidirectional, just
+                  like a value binding for a JSF input:
+              </para>
+              
+              <itemizedlist>
+                  <listitem>
+                      <para>
+                          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.
+                      </para>
+                  </listitem>
+                  <listitem>
+                      <para>
+                          Any <literal>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered).
+                      </para>
+                  </listitem>
+                  <listitem>
+                      <para>
+                          Any navigation rule with a <literal>&lt;redirect/&gt;</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.
+                      </para>
+                  </listitem>
+                  <listitem>
+                      <para>
+                          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.
+                      </para>
+                  </listitem>
+              </itemizedlist>
+              
+              <para>
+                  The essential idea behind all this is that <emphasis>however</emphasis>
+                  we get from any other page to <literal>/hello.jsp</literal> (or from 
+                  <literal>/hello.jsp</literal> back to <literal>/hello.jsp</literal>), 
+                  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).
+              </para>
+
+            </section>
+    </section>
+    
+            <section>
+                <title>Propagating request parameters</title>
+                
+                <para>
+                    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).
+                </para>       
+              
+          <programlisting role="XML"><![CDATA[<pages>
+      <page view-id="/hello.jsp" action="#{helloWorld.sayHello}">
+          <param name="firstName" />
+          <param name="lastName" />
+      </page>
+  </pages>]]></programlisting>
+  
+
+		<para>
+                  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.
+        </para>
+      <itemizedlist>
+         <listitem>
+             <para>
+                 Any <literal>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</literal> 
+                 transparently propagates the request parameter if that parameter is listed
+                 as a page parameter for the view.
+             </para>
+         </listitem>
+         <listitem>
+             <para>
+                 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.
+             </para>
+         </listitem>
+      </itemizedlist>
+	      
+      <para>
+	      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.
+      </para>
+        
+      </section>
+            
+            
+      <section>
+         <title>Conversion and Validation</title>
+
+         <para>
+            You can specify a JSF converter for complex model propreties:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<pages>
+   <page view-id="/calculator.jsp" action="#{calculator.calculate}">
+      <param name="x" value="#{calculator.lhs}"/>
+      <param name="y" value="#{calculator.rhs}"/>
+      <param name="op" converterId="com.my.calculator.OperatorConverter" value="#{calculator.op}"/>
+   </page>
+</pages>]]></programlisting>
+ 
+         <para>
+            Alternatively:
+         </para>
+                
+         <programlisting role="XML"><![CDATA[<pages>
+   <page view-id="/calculator.jsp" action="#{calculator.calculate}">
+      <param name="x" value="#{calculator.lhs}"/>
+      <param name="y" value="#{calculator.rhs}"/>
+      <param name="op" converter="#{operatorConverter}" value="#{calculator.op}"/>
+   </page>
+</pages>]]></programlisting>
+
+
+         <para>
+            JSF validators, and <literal>required="true"</literal> may
+            also be used:
+         </para>
+         <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/blog.xhtml">
+        <param name="date" 
+               value="#{blog.date}" 
+               validatorId="com.my.blog.PastDate" 
+               required="true"/>
+    </page>
+</pages>]]></programlisting>
+
+         <para>
+            Alternatively:
+         </para>
+  
+         <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/blog.xhtml">
+        <param name="date" 
+               value="#{blog.date}" 
+               validator="#{pastDateValidator}" 
+               required="true"/>
+    </page>
+</pages>]]></programlisting>
+
+         <para>
+            Even better, model-based Hibernate validator annotations are automatically
+            recognized and validated.
+         </para>
+
+         <para>
+            When type conversion or validation fails, a global <literal>FacesMessage</literal>
+            is added to the <literal>FacesContext</literal>.
+         </para>
+
+      </section>
+
+      <section id="events.pageaction.navigation">
+         <title>Navigation</title>
+            
+         <para>
+            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:
+         </para>
+            
+         <itemizedlist>
+            <listitem>
+               <para>
+                  It is not possible to specify request parameters to be used when redirecting.
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  It is not possible to begin or end conversations from a rule.
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  Rules work by evaluating the return value of the action method; it is not
+                  possible to evaluate an arbitrary EL expression.
+               </para>
+            </listitem>
+         </itemizedlist>
+            
+         <para>
+            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>.
+         </para>
+            
+         <para>
+            This JSF navigation rule:
+         </para>
+            
+         <programlisting role="XML"><![CDATA[<navigation-rule>
+   <from-view-id>/editDocument.xhtml</from-view-id>
+    
+   <navigation-case>
+      <from-action>#{documentEditor.update}</from-action>
+      <from-outcome>success</from-outcome>
+      <to-view-id>/viewDocument.xhtml</to-view-id>
+      <redirect/>
+   </navigation-case>
+    
+</navigation-rule>]]></programlisting>
+        
+         <para>
+            Can be rewritten as follows:
+         </para>
+            
+         <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <rule if-outcome="success">
+            <redirect view-id="/viewDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+        
+            <para>
+                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:
+            </para>
+        
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}" 
+                   evaluate="#{documentEditor.errors.size}">
+        <rule if-outcome="0">
+            <redirect view-id="/viewDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                Or even:
+            </para>
+        
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <rule if="#{documentEditor.errors.empty}">
+            <redirect view-id="/viewDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                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.
+            </para>
+            
+            <para>
+                Of course, when an update succeeds, we probably want to end the current
+                conversation. We can do that like this:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <rule if="#{documentEditor.errors.empty}">
+            <end-conversation/>
+            <redirect view-id="/viewDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                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:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <rule if="#{documentEditor.errors.empty}">
+            <end-conversation/>
+            <redirect view-id="/viewDocument.xhtml">
+                <param name="documentId" value="#{documentEditor.documentId}"/>
+            </redirect>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <rule>
+            <render view-id="/viewDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                If you want to perform navigation when a null outcome occurs, use the
+                following form instead:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+    
+    <navigation from-action="#{documentEditor.update}">
+        <render view-id="/viewDocument.xhtml"/>
+    </navigation>
+    
+</page>]]></programlisting>
+
+            <para>
+                The view-id may be given as a JSF EL expression:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<page view-id="/editDocument.xhtml">
+
+    <navigation>
+        <rule if-outcome="success">
+            <redirect view-id="/#{userAgent}/displayDocument.xhtml"/>
+        </rule>
+    </navigation>
+    
+</page>]]></programlisting>
+
+        </section>
+
+        <section>
+            <title>Fine-grained files for definition of navigation, page actions and parameters</title>
+            
+            <para>
+                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>&lt;page&gt;</literal>
+                element, and the view id is implied:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<page action="#{calculator.calculate}">
+    <param name="x" value="#{calculator.lhs}"/>
+    <param name="y" value="#{calculator.rhs}"/>
+    <param name="op" converter="#{operatorConverter}" value="#{calculator.op}"/>
+</page>]]></programlisting>
+
+        </section>
+        
+        
+        
+        <section>
+            <title>Component-driven events</title>
+            
+            <para>
+                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>.
+            </para>
+            
+            <para>
+                We specify event listeners (observers) in <literal>components.xml</literal>.
+            </para>
+            
+        <programlisting role="XML"><![CDATA[<components>
+    <event type="hello">
+        <action execute="#{helloListener.sayHelloBack}"/>
+        <action execute="#{logger.logHello}"/>
+    </event>
+</components>]]></programlisting>
+
+            <para>
+                Where the <emphasis>event type</emphasis> is just an arbitrary string.
+            </para>
+            
+            <para>
+                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.
+            </para>
+            
+            <programlisting role="JAVA"><![CDATA[@Name("helloWorld")
+public class HelloWorld {
+    public void sayHello() {
+        FacesMessages.instance().add("Hello World!");
+        Events.instance().raiseEvent("hello");
+    }
+}]]></programlisting>
+
+            <para>
+                Or you can use an annotation.
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("helloWorld")
+public class HelloWorld {
+    @RaiseEvent("hello")
+    public void sayHello() {
+        FacesMessages.instance().add("Hello World!");
+    }
+}]]></programlisting>
+
+            <para>
+                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:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("helloListener")
+public class HelloListener {
+    public void sayHelloBack() {
+        FacesMessages.instance().add("Hello to you too!");
+    }
+}]]></programlisting>
+
+            <para>
+                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:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[@Name("helloListener")
+public class HelloListener {
+    @Observer("hello")
+    public void sayHelloBack() {
+        FacesMessages.instance().add("Hello to you too!");
+    }
+}]]></programlisting>
+
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="JAVA"><![CDATA[@Name("helloWorld")
+public class HelloWorld {
+    private String name;
+    public void sayHello() {
+        FacesMessages.instance().add("Hello World, my name is #0.", name);
+        Events.instance().raiseEvent("hello", name);
+    }
+}]]></programlisting>
+
+            <programlisting role="JAVA"><![CDATA[@Name("helloListener")
+public class HelloListener {
+    @Observer("hello")
+    public void sayHelloBack(String name) {
+        FacesMessages.instance().add("Hello #0!", name);
+    }
+}]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Contextual events</title>
+            <para>
+                Seam defines a number of built-in events that the application can use to
+                perform special kinds of framework integration. The events are:
+            </para>
+            
+            <itemizedlist>
+            <listitem><para><literal>org.jboss.seam.validationFailed</literal> &#8212; called when JSF validation fails</para></listitem>
+            <listitem><para><literal>org.jboss.seam.noConversation</literal> &#8212; called when there is no long running conversation and a long running conversation is required</para></listitem>
+            <listitem><para><literal>org.jboss.seam.preSetVariable.&lt;name&gt;</literal> &#8212; called when the context variable &lt;name&gt; is set</para></listitem>
+            <listitem><para><literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; called when the context variable &lt;name&gt; is set</para></listitem>
+            <listitem><para><literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; called when the context variable &lt;name&gt; is unset</para></listitem>
+            <listitem><para><literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; called when the context variable &lt;name&gt; is unset</para></listitem>
+            <listitem><para><literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; called before the &lt;SCOPE&gt; context is destroyed</para></listitem>
+            <listitem><para><literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; called after the &lt;SCOPE&gt; context is destroyed</para></listitem>
+            <listitem><para><literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever a long-running conversation begins</para></listitem>
+            <listitem><para><literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a long-running conversation ends</para></listitem>
+            <listitem><para><literal>org.jboss.seam.conversationTimeout</literal>&#8212; called when a conversation timeout occurs. The conversation id is passed as a parameter.</para></listitem>
+            <listitem><para><literal>org.jboss.seam.beginPageflow </literal>&#8212; called when a pageflow begins</para></listitem>
+            <listitem><para><literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called when the pageflow &lt;name&gt; begins</para></listitem>
+            <listitem><para><literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow ends</para></listitem>
+            <listitem><para><literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called when the pageflow &lt;name&gt; ends</para></listitem>
+            <listitem><para><literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called when the process &lt;name&gt; is created</para></listitem>
+            <listitem><para><literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called when the process &lt;name&gt; ends</para></listitem>
+            <listitem><para><literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called when the process &lt;name&gt; is associated with the conversation</para></listitem>
+            <listitem><para><literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when the task &lt;name&gt; is associated with the conversation</para></listitem>
+            <listitem><para><literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when the task &lt;name&gt; is started</para></listitem>
+            <listitem><para><literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when the task &lt;name&gt; is ended</para></listitem>
+            <listitem><para><literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called when the component &lt;name&gt; is created</para></listitem>
+            <listitem><para><literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called when the component &lt;name&gt; is destroyed</para></listitem>
+            <listitem><para><literal>org.jboss.seam.beforePhase </literal>&#8212; called before the start of a JSF phase</para></listitem>
+            <listitem><para><literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of a JSF phase</para></listitem>
+            <listitem><para><literal>org.jboss.seam.postInitialization </literal>&#8212; called when Seam has initialized and started up all components</para></listitem>
+            <listitem><para><literal>org.jboss.seam.security.loggedOut</literal> &#8212; called when a user logs out</para></listitem>            
+            <listitem><para><literal>org.jboss.seam.security.loginFailed</literal> &#8212; called when a user authentication attempt fails</para></listitem>            
+            <listitem><para><literal>org.jboss.seam.security.loginSuccessful</literal> &#8212; called when a user is successfully authenticated</para></listitem>            
+            <listitem><para><literal>org.jboss.seam.security.notAuthorized</literal> &#8212; called when an authorization check fails</para></listitem>            
+            <listitem><para><literal>org.jboss.seam.security.notLoggedIn</literal> &#8212; called there is no authenticated user and authentication is required</para></listitem>            
+            <listitem><para><literal>org.jboss.seam.security.postAuthenticate.</literal> &#8212; called after a user is authenticated</para></listitem>
+            <listitem><para><literal>org.jboss.seam.security.preAuthenticate</literal> &#8212; called before attempting to authenticate a user</para></listitem>
+            <listitem><para><literal>org.jboss.seam.exceptionHandled.&lt;type&gt;</literal> &#8212; called when an uncaught exception is handled by Seam</para></listitem>
+            <listitem><para><literal>org.jboss.seam.exceptionHandled</literal> &#8212; called when an uncaught exception is handled by Seam</para></listitem>
+            <listitem><para><literal>org.jboss.seam.exceptionNotHandled</literal> &#8212; called when there was no handler for an uncaught exception</para></listitem>
+            <listitem><para><literal>org.jboss.seam.afterTransactionSuccess</literal> &#8212; called when a transaction succeeds in the Seam Application Framework</para></listitem>
+            <listitem><para><literal>org.jboss.seam.afterTransactionSuccess.&lt;name&gt;</literal> &#8212; called when a transaction succeeds in the Seam Application Framework which manages an entity called <literal>&lt;name&gt;</literal></para></listitem>
+            </itemizedlist>
+             
+             <para>
+                 Seam components may observe any of these events in just the same way they
+                 observe any other component-driven events.
+             </para>
+        </section>
+        
+   
+    
+    <section>
+      <title>Seam interceptors</title>
+      
+      <para>
+        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:
+      </para>
+      
+      <programlisting role="JAVA"><![CDATA[public class LoggedInInterceptor {
+
+   @AroundInvoke
+   public Object checkLoggedIn(InvocationContext invocation) throws Exception {
+   
+      boolean isLoggedIn = Contexts.getSessionContext().get("loggedIn")!=null;
+      if (isLoggedIn) {
+         //the user is already logged in
+         return invocation.proceed();
+      }
+      else {
+         //the user is not logged in, fwd to login page
+         return "login";
+      }
+   }
+
+}]]></programlisting>
+
+    <para>
+        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:
+    </para>
+      
+      <programlisting role="JAVA"><![CDATA[@Target(TYPE)
+ at Retention(RUNTIME)
+ at Interceptors(LoggedInInterceptor.class)
+public @interface LoggedIn {}]]></programlisting>
+
+        <para>
+            We can now simply annotate our action listener bean with <literal>@LoggedIn</literal>
+            to apply the interceptor.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("changePasswordAction")
+ at LoggedIn
+ at Interceptors(SeamInterceptor.class)
+public class ChangePasswordAction implements ChangePassword { 
+    
+    ...
+    
+    public String changePassword() { ... }
+    
+}]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+<programlisting role="JAVA"><![CDATA[@Interceptor(around={BijectionInterceptor.class,
+                     ValidationInterceptor.class,
+                     ConversationInterceptor.class},
+             within=RemoveInterceptor.class)
+public class LoggedInInterceptor
+{
+    ...
+}]]></programlisting>
+
+        <para>
+            You can even have a "client-side" interceptor, that runs around any of the built-in
+            functionality of EJB3:
+        </para>
+
+<programlisting role="JAVA"><![CDATA[@Interceptor(type=CLIENT)
+public class LoggedInInterceptor
+{
+    ...
+}]]></programlisting>
+
+        <para>
+            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>.
+        </para>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            You can even use Seam interceptors with JavaBean components, not just EJB3 beans!
+        </para>
+        
+        <para>
+            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).
+        </para>
+
+    </section>
+      
+    <section>
+        <title>Managing exceptions</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <section>
+            <title>Exceptions and transactions</title>
+            
+            <para>
+                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.)
+            </para>
+            
+            <para>
+                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.
+            </para>
+        
+            <para>
+                Seam applies the EJB 3.0 exception rollback rules also to Seam JavaBean 
+                components.
+            </para>
+        
+            <para>
+                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.
+            </para>
+        </section>
+        
+        <section>
+            <title>Enabling Seam exception handling</title>
+        
+        <para>
+            To enable Seam's exception handling, we need to make sure we have the master servlet 
+            filter declared in <literal>web.xml</literal>:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<filter>
+    <filter-name>Seam Filter</filter-name>
+    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+</filter>
+
+<filter-mapping>
+    <filter-name>Seam Filter</filter-name>
+    <url-pattern>*.seam</url-pattern>
+</filter-mapping>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+
+        </section>
+        
+        <section>
+            <title>Using annotations for exception handling</title>
+            
+        <para>
+            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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@HttpError(errorCode=404)
+public class ApplicationException extends Exception { ... }]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Redirect(viewId="/failure.xhtml", end=true)
+ at ApplicationException(rollback=true)
+public class UnrecoverableApplicationException extends RuntimeException { ... }]]></programlisting>
+
+        <para>
+            Note that <literal>@Redirect</literal> does not work for exceptions
+            which occur during the render phase of the JSF lifecycle.
+        </para>
+        
+        <para>
+            You can also use EL to specify the <literal>viewId</literal> to redirect to.
+        </para>
+
+        <para>
+            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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Redirect(viewId="/error.xhtml", message="Unexpected error")
+public class SystemException extends RuntimeException { ... }]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Using XML for exception handling</title>
+
+        <para>
+            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>.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pages>
+   
+   <exception class="javax.persistence.EntityNotFoundException">
+      <http-error error-code="404"/>
+   </exception>
+   
+   <exception class="javax.persistence.PersistenceException">
+      <end-conversation/>
+      <redirect view-id="/error.xhtml">
+          <message>Database access failed</message>
+      </redirect>
+   </exception>
+   
+   <exception>
+      <end-conversation/>
+      <redirect view-id="/error.xhtml">
+          <message>Unexpected failure</message>
+      </redirect>
+   </exception>
+   
+</pages>]]></programlisting>
+
+        <para>
+            The last <literal>&lt;exception&gt;</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>.
+        </para>
+        
+        <para>
+            You can also use EL to specify the <literal>view-id</literal> to redirect to.
+        </para>
+        
+        <para>
+           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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[...
+throw new AuthorizationException("You are not allowed to do this!");
+
+<pages>
+
+    <exception class="org.jboss.seam.security.AuthorizationException">
+        <end-conversation/>
+        <redirect view-id="/error.xhtml">
+            <message severity="WARN">#{org.jboss.seam.handledException.message}</message>
+        </redirect>
+    </exception>
+
+</pages>]]></programlisting>
+         
+         <para>
+           <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>.
+         </para>
+         
+        </section>
+        
+        <section>
+            <title>Some common exceptions</title>
+            
+            <para>
+                If you are using JPA:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<exception class="javax.persistence.EntityNotFoundException">
+   <redirect view-id="/error.xhtml">
+      <message>Not found</message>
+   </redirect>
+</exception>
+
+<exception class="javax.persistence.OptimisticLockException">
+   <end-conversation/>
+   <redirect view-id="/error.xhtml">
+      <message>Another user changed the same data, please try again</message>
+   </redirect>
+</exception>]]></programlisting>
+
+            <para>
+                If you are using the Seam Application Framework:
+            </para>
+            
+            <programlisting role="XML"><![CDATA[<exception class="org.jboss.seam.framework.EntityNotFoundException">
+   <redirect view-id="/error.xhtml">
+      <message>Not found</message>
+   </redirect>
+</exception>]]></programlisting>
+    
+            <para>
+                If you are using Seam Security:
+            </para>
+    
+            <programlisting role="XML"><![CDATA[<exception class="org.jboss.seam.security.AuthorizationException">
+   <redirect>
+      <message>You don't have permission to do this</message>
+   </redirect>
+</exception>
+    
+<exception class="org.jboss.seam.security.NotLoggedInException">
+   <redirect view-id="/login.xhtml">
+      <message>Please log in first</message>
+   </redirect>
+</exception>]]></programlisting>
+
+            <para>
+               And, for JSF:
+            </para>
+    
+            <programlisting role="XML"><![CDATA[<exception class="javax.faces.application.ViewExpiredException">
+   <redirect view-id="/error.xhtml">
+      <message>Your session has timed out, please try again</message>
+   </redirect>
+</exception>]]></programlisting>
+
+            <para>
+                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.
+            </para>
+        </section>
+
+    </section>
+    
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Events.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Feedback.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Feedback.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Feedback.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<section id="Book-We_Need_Feedback">
+   <title>Contribute to Seam</title>
+   <para>
+      Visit
+      <ulink url="http://www.seamframework.org/Community/Contribute">
+         SeamFramework.org
+      </ulink>
+      to find out how to contribute to Seam!
+   </para>
+
+</section>
+
+


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Feedback.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Framework.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Framework.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Framework.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,602 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+
+<chapter id="framework">
+    <title>The Seam Application Framework</title>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+        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&#8212;the same magic
+        you use when creating any Seam application even without using 
+        this framework.
+    </para>
+    
+    <section>
+        <title>Introduction</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<framework:entity-home name="personHome" 
+                       entity-class="eg.Person" 
+                       entity-manager="#{personDatabase}">
+    <framework:id>#{param.personId}</framework:id>
+</framework:entity-home>]]></programlisting>
+
+        <para>
+            If that looks a bit too much like "programming in XML" for 
+            your taste, you can use extension instead:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[
+ at Name("personHome")
+public class PersonHome extends EntityHome<Person> {
+    
+   @In EntityManager personDatabase;
+    
+   public EntityManager getEntityManager() {
+      return personDatabase; 
+   }
+    
+}]]></programlisting>
+
+        <para>
+            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).
+        </para>
+        
+        <para>
+            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 EAP:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("personHome")
+public class PersonHome extends EntityHome<Person> implements LocalPersonHome {
+    
+}]]></programlisting>
+        
+        <para>
+            You can also make your classes stateless session beans. In this case
+            you <emphasis>must</emphasis> use injection to provide the
+            persistence context, even if it is called 
+            <literal>entityManager</literal>:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("personHome")
+public class PersonHome extends EntityHome<Person> implements LocalPersonHome {
+    
+   @In EntityManager entityManager;
+    
+   public EntityManager getPersistenceContext() { 
+      entityManager; 
+   }
+    
+}]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+
+        <para>
+            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>.
+        </para>
+        
+    </section>
+    
+    <section>
+        <title>Home objects</title>
+        
+        <para>
+            A Home object provides persistence operations for a particular entity
+            class. Suppose we have our trusty <literal>Person</literal> class:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Entity
+public class Person {
+    @Id private Long id;
+    private String firstName;
+    private String lastName;
+    private Country nationality;
+    
+    //getters and setters...
+}]]></programlisting>
+
+        <para>
+            We can define a <literal>personHome</literal> component either via
+            configuration:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<framework:entity-home name="personHome" entity-class="eg.Person" />]]></programlisting>
+
+        <para>
+            Or via extension:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("personHome")
+public class PersonHome extends EntityHome<Person> {}]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            We can use a Home directly from a JSF page, for example:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h1>Create Person</h1>
+<h:form>
+    <div>First name: <h:inputText value="#{personHome.instance.firstName}"/></div>
+    <div>Last name: <h:inputText value="#{personHome.instance.lastName}"/></div>
+    <div>
+        <h:commandButton value="Create Person" action="#{personHome.persist}"/>
+    </div>
+</h:form>]]></programlisting>
+
+        <para>
+            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>:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<factory name="person" 
+         value="#{personHome.instance}"/>
+
+<framework:entity-home name="personHome" 
+                       entity-class="eg.Person" />]]></programlisting>
+
+        <para>
+            (If we are using configuration.)
+            Or by adding a <literal>@Factory</literal> method to <literal>PersonHome</literal>:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Name("personHome")
+public class PersonHome extends EntityHome<Person> {
+    
+    @Factory("person")
+    public Person initPerson() { return getInstance(); }
+    
+}]]></programlisting>
+        
+        <para>
+            (If we are using extension.) 
+            This change simplifies our JSF page to the following:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h1>Create Person</h1>
+<h:form>
+    <div>First name: <h:inputText value="#{person.firstName}"/></div>
+    <div>Last name: <h:inputText value="#{person.lastName}"/></div>
+    <div>
+        <h:commandButton value="Create Person" action="#{personHome.persist}"/>
+    </div>
+</h:form>]]></programlisting>
+
+        <para>
+            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:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/editPerson.jsp">
+        <param name="personId" value="#{personHome.id}"/>
+    </page>
+</pages>]]></programlisting>
+
+        <para>
+            Now we can add the extra operations to our JSF page:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h1>
+    <h:outputText rendered="#{!personHome.managed}" value="Create Person"/>
+    <h:outputText rendered="#{personHome.managed}" value="Edit Person"/>
+</h1>
+<h:form>
+    <div>First name: <h:inputText value="#{person.firstName}"/></div>
+    <div>Last name: <h:inputText value="#{person.lastName}"/></div>
+    <div>
+        <h:commandButton value="Create Person" action="#{personHome.persist}" rendered="#{!personHome.managed}"/>
+        <h:commandButton value="Update Person" action="#{personHome.update}" rendered="#{personHome.managed}"/>
+        <h:commandButton value="Delete Person" action="#{personHome.remove}" rendered="#{personHome.managed}"/>
+    </div>
+</h:form>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            Suppose we need to create <literal>Person</literal> entries with their
+            nationality initialized. We can do that easily, via configuration:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<factory name="person" 
+         value="#{personHome.instance}"/>
+
+<framework:entity-home name="personHome" 
+                       entity-class="eg.Person" 
+                       new-instance="#{newPerson}"/>
+
+<component name="newPerson" 
+           class="eg.Person">
+    <property name="nationality">#{country}</property>
+</component>]]></programlisting>
+         
+         <para>
+             Or by extension:
+         </para>
+         
+        <programlisting role="JAVA"><![CDATA[@Name("personHome")
+public class PersonHome extends EntityHome<Person> {
+    
+    @In Country country;
+    
+    @Factory("person")
+    public Person initPerson() { return getInstance(); }
+    
+    protected Person createInstance() {
+        return new Person(country);
+    }
+    
+}]]></programlisting>
+
+        <para>
+            Of course, the <literal>Country</literal> could be an object managed by
+            another Home object, for example, <literal>CountryHome</literal>.
+        </para>
+        
+        <para>
+            To add more sophisticated operations (association management, etc), we can
+            just add methods to <literal>PersonHome</literal>.
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("personHome")
+public class PersonHome extends EntityHome<Person> {
+    
+    @In Country country;
+    
+    @Factory("person")
+    public Person initPerson() { return getInstance(); }
+    
+    protected Person createInstance() {
+        return new Person(country);
+    }
+    
+    public void migrate()
+    {
+        getInstance().setCountry(country);
+        update();
+    }
+    
+}]]></programlisting>
+
+		<para>
+			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 persisted, 
+			updated or removed we can observe the 
+			<literal>org.jboss.seam.afterTransactionSuccess.&lt;name&gt;</literal> 
+			event (where <literal>&lt;name&gt;</literal> is the name of the entity).
+		</para>
+
+        <para>
+            The Home object automatically displays faces messages when an operation is
+            successful. To customize these messages we can, again, use configuration:
+        </para>
+         
+        <programlisting role="XML"><![CDATA[<factory name="person" 
+         value="#{personHome.instance}"/>
+
+<framework:entity-home name="personHome"
+                       entity-class="eg.Person"
+                       new-instance="#{newPerson}">
+    <framework:created-message>New person #{person.firstName} #{person.lastName} created</framework:created-message>
+    <framework:deleted-message>Person #{person.firstName} #{person.lastName} deleted</framework:deleted-message>
+    <framework:updated-message>Person #{person.firstName} #{person.lastName} updated</framework:updated-message>
+</framework:entity-home>
+
+<component name="newPerson" 
+           class="eg.Person">
+    <property name="nationality">#{country}</property>
+</component>]]></programlisting>
+         
+         <para>
+             Or extension:
+         </para>
+         
+        <programlisting role="JAVA"><![CDATA[@Name("personHome")
+public class PersonHome extends EntityHome<Person> {
+    
+    @In Country country;
+    
+    @Factory("person")
+    public Person initPerson() { return getInstance(); }
+    
+    protected Person createInstance() {
+        return new Person(country);
+    }
+    
+    protected String getCreatedMessage() { return "New person #{person.firstName} #{person.lastName} created"; }
+    protected String getUpdatedMessage() { return "Person #{person.firstName} #{person.lastName} updated"; }
+    protected String getDeletedMessage() { return "Person #{person.firstName} #{person.lastName} deleted"; }
+    
+}]]></programlisting>
+
+        <para>
+            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).
+        </para>
+
+        <programlisting><![CDATA[Person_created=New person #{person.firstName} #{person.lastName} created
+Person_deleted=Person #{person.firstName} #{person.lastName} deleted
+Person_updated=Person #{person.firstName} #{person.lastName} updated]]></programlisting>
+
+        <para>
+            This enables internationalization, and keeps your code and configuration clean of
+            presentation concerns.
+        </para>
+
+        <para>
+            The final step is to add validation functionality to the page, using
+            <literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</literal>,
+            but I'll leave that for you to figure out.
+        </para>
+
+    </section>
+    
+    <section>
+        <title>Query objects</title>
+        
+        <para>
+            If we need a list of all <literal>Person</literal> instance in the database, we
+            can use a Query object. For example:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<framework:entity-query name="people" 
+                        ejbql="select p from Person p"/>]]></programlisting>
+        
+        <para>
+            We can use it from a JSF page:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h1>List of people</h1>
+<h:dataTable value="#{people.resultList}" var="person">
+    <h:column>
+        <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+            <f:param name="personId" value="#{person.id}"/>
+        </s:link>
+    </h:column>
+</h:dataTable>]]></programlisting>
+
+        <para>
+            We probably need to support pagination:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<framework:entity-query name="people" 
+                        ejbql="select p from Person p" 
+                        order="lastName" 
+                        max-results="20"/>]]></programlisting>
+
+        <para>
+            We'll use a page parameter to determine the page to display:
+        </para>
+
+
+        <programlisting role="XML"><![CDATA[<pages>
+    <page view-id="/searchPerson.jsp">
+        <param name="firstResult" value="#{people.firstResult}"/>
+    </page>
+</pages>]]></programlisting>
+
+        <para>
+            The JSF code for a pagination control is a bit verbose, but manageable:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h1>Search for people</h1>
+<h:dataTable value="#{people.resultList}" var="person">
+    <h:column>
+        <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+            <f:param name="personId" value="#{person.id}"/>
+        </s:link>
+    </h:column>
+</h:dataTable>
+
+<s:link view="/search.xhtml" rendered="#{people.previousExists}" value="First Page">
+    <f:param name="firstResult" value="0"/>
+</s:link>
+
+<s:link view="/search.xhtml" rendered="#{people.previousExists}" value="Previous Page">
+    <f:param name="firstResult" value="#{people.previousFirstResult}"/>
+</s:link>
+
+<s:link view="/search.xhtml" rendered="#{people.nextExists}" value="Next Page">
+    <f:param name="firstResult" value="#{people.nextFirstResult}"/>
+</s:link>
+
+<s:link view="/search.xhtml" rendered="#{people.nextExists}" value="Last Page">
+    <f:param name="firstResult" value="#{people.lastFirstResult}"/>
+</s:link>]]></programlisting>
+
+        <para>
+            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:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<component name="examplePerson" class="Person"/>
+        
+<framework:entity-query name="people" 
+                        ejbql="select p from Person p" 
+                        order="lastName" 
+                        max-results="20">
+    <framework:restrictions>
+        <value>lower(firstName) like lower( concat(#{examplePerson.firstName},'%') )</value>
+        <value>lower(lastName) like lower( concat(#{examplePerson.lastName},'%') )</value>
+    </framework:restrictions>
+</framework:entity-query>]]></programlisting>
+
+        <para>
+            Notice the use of an "example" object.
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h1>Search for people</h1>
+<h:form>
+    <div>First name: <h:inputText value="#{examplePerson.firstName}"/></div>
+    <div>Last name: <h:inputText value="#{examplePerson.lastName}"/></div>
+    <div><h:commandButton value="Search" action="/search.jsp"/></div>
+</h:form>
+
+<h:dataTable value="#{people.resultList}" var="person">
+    <h:column>
+        <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+            <f:param name="personId" value="#{person.id}"/>
+        </s:link>
+    </h:column>
+</h:dataTable>]]></programlisting>
+
+		<para>
+			To refresh the query when the underlying entities change we observe the
+			<literal>org.jboss.seam.afterTransactionSuccess</literal> event:
+		</para>
+		
+		<programlisting role="XML"><![CDATA[<event type="org.jboss.seam.afterTransactionSuccess">
+    <action execute="#{people.refresh}" />
+</event>]]></programlisting>
+
+		<para>
+			Or, to just refresh the query when the person entity is persisted, updated or 
+			removed through <literal>PersonHome</literal>:
+		</para>
+		
+		<programlisting role="XML"><![CDATA[<event type="org.jboss.seam.afterTransactionSuccess.Person">
+    <action execute="#{people.refresh}" />
+    </event>]]></programlisting>
+       
+      <para>
+         Unfortunately Query objects don't work well with 
+         <emphasis>join fetch</emphasis> queries - the use of pagination with
+         these queries is not recommended, and you'll have to implement your own
+         method of calculating the total number of results (by overriding 
+         <literal>getCountEjbql()</literal>.
+      </para>
+
+      <para>
+         The examples in this section have all shown reuse by configuration. However,
+         reuse by extension is equally possible for Query objects.
+      </para>
+
+    </section>
+    
+    <section>
+        <title>Controller objects</title>
+        <para>
+            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.
+        </para>
+        <para>
+            For example, here is what <literal>RegisterAction</literal> from the
+            Seam registration example would look like:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("register")
+public class RegisterAction extends EntityController implements Register
+{
+
+   @In private User user;
+   
+   public String register()
+   {
+      List existing = createQuery("select u.username from User u where u.username=:username")
+         .setParameter("username", user.getUsername())
+         .getResultList();
+      
+      if ( existing.size()==0 )
+      {
+         persist(user);
+         info("Registered new user #{user.username}");
+         return "/registered.jspx";
+      }
+      else
+      {
+         addFacesMessage("User #{user.username} already exists");
+         return null;
+      }
+   }
+
+}]]></programlisting>
+
+        <para>
+            As you can see, its not an earthshattering improvement...
+        </para>
+
+    </section>
+    
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Framework.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,670 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="gettingstartedwithjbosstools">
+   <title>Getting started with Seam, using JBoss Tools</title>
+
+   <para>
+      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.
+   </para>
+
+   <para>
+      In short, if you are an Eclipse user, then you'll want JBoss Tools!
+   </para>
+
+   <para>
+      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.
+   </para>
+
+   <section>
+      <title>Before you start</title>
+
+      <para>
+         Make sure you have JBoss EAP 4.3 FP01 and JBDS installed.
+      </para>
+
+   </section>
+
+   <section>
+      <title>Setting up a new Seam project</title>
+
+      <para>
+         Start up Eclipse and select the <emphasis>Seam</emphasis> perspective.
+      </para>
+
+      <para>
+         Go to <emphasis>File</emphasis> -> <emphasis>New</emphasis> ->
+          <emphasis>Seam Web Project</emphasis>.
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_web_project_0.png"
+               align="center" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_web_project_0.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         First, enter a name for your new project. For this tutorial, we're
+         going to use
+         <literal>helloworld</literal>
+         .
+      </para>
+
+
+      <para>
+         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:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_server_runtime_1.png"
+               align="center" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_server_runtime_1.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         Enter a name for the runtime, and locate it on your hard drive:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_server_runtime_2.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_server_runtime_2.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         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:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_server_1.png" align="center"
+                />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_server_1.png" align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         On the next screen give the server a name, and hit 
+         <emphasis>Finish</emphasis>:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_server_2.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_server_2.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         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>:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_web_project_1.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_web_project_1.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         The next 3 screens allow you to further customize your new project, but
+         for us the defaults are fine. So just hit <emphasis>Next</emphasis> 
+         until you reach the final screen.
+      </para>
+      
+      <para>
+         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:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_seam_runtime.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_seam_runtime.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         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.
+      </para>
+      
+      <para>
+         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>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_1.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_1.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Give it a name:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_2.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_2.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         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>.
+      </para>
+      
+      <para>
+         Locate MySQL 5, and hit <emphasis>Add...</emphasis>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_3.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_3.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Choose the <emphasis>MySQL JDBC Driver</emphasis> template:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_4.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_4.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Locate the jar on your computer by choosing <emphasis>Edit 
+         Jar/Zip</emphasis>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_5.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_5.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Review the username and password used to connect, and if correct, hit
+         <emphasis>Ok</emphasis>.
+      </para>
+      
+      <para>
+         Finally, choose the newly created driver:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_connection_profile_6.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_connection_profile_6.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         If you are working with an existing data model, make sure you tell
+         JBoss Tools that the tables already exist in the database.
+      </para>
+      
+      <para>
+         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>:
+      </para>
+      
+      <para>
+         Finally, review the package names for your generated beans, and if you
+         are happy, click <emphasis>Finish</emphasis>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_web_project_2.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_web_project_2.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         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:
+      </para>
+
+      <programlisting>
+         -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512
+      </programlisting>
+
+      <para>
+         If you don't have so much memory available, the following is our
+         minimum recommendation:
+      </para>
+
+      <programlisting>
+         -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256
+      </programlisting>
+
+      <para>
+         Locate the server in the <emphasis>JBoss Server View</emphasis>, right
+         click on the server and select <emphasis>Edit Launch 
+         Configuration</emphasis>: 
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/server_properties_0.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/server_properties_0.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Then, alter the VM arguements:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/server_properties.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/server_properties.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         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>.
+      </para>
+
+      <para>
+         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):
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/start_server.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/start_server.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+
+      <para>
+         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.
+      </para>
+
+   </section>
+
+   <section>
+      <title>Creating a new action</title>
+
+      <para>
+         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.
+      </para>
+      
+      <para>
+         First, select <emphasis>New</emphasis> -> <emphasis>Seam Action</emphasis>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_action_0.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_action_0.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Now, enter the name of the Seam component. JBoss Tools selects sensible
+         defaults for other fields:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_action_1.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_action_1.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Finally, hit <emphasis>Finish</emphasis>.
+      </para>
+
+      <para>
+         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.
+      </para>
+
+      <para>
+         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>:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/run_test.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/run_test.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+   </section>
+
+   <section>
+      <title>Creating a form with an action</title>
+
+      <para>
+         The first step is to create a form. Select <emphasis>New</emphasis> -> 
+         <emphasis>Seam Form</emphasis>:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_form_0.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_form_0.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         Now, enter the name of the Seam component. JBoss Tools selects sensible
+         defaults for other fields:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/new_form_1.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/new_form_1.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+ 
+      <para>
+         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" />).
+      </para>
+   </section>
+
+   <section>
+      <title>Generating an application from an existing database</title>
+
+      <para>
+         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>:
+      </para>
+
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/generate_entities_0.png"
+               align="center" scalefit="1" />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/generate_entities_0.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         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>.
+      </para>
+     
+      <para>
+         Restart the deployment:
+      </para>
+      
+      <mediaobject>
+         <imageobject role="fo">
+            <imagedata fileref="images/restart_deployment.png"
+               align="center"  />
+         </imageobject>
+         <imageobject role="html">
+            <imagedata fileref="images/restart_deployment.png"
+               align="center" />
+         </imageobject>
+      </mediaobject>
+      
+      <para>
+         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.
+      </para>
+   </section>
+
+   <section id="gettingstartedwithjbosstools.hotdeployment">
+      <title>Seam and incremental hot deployment with JBoss Tools</title>
+
+      <para>
+         JBoss Tools supports incremental hot deployment of:
+      </para>
+
+      <itemizedlist>
+         <listitem>
+            <para>any facelets page</para>
+         </listitem>
+
+         <listitem>
+            <para>
+               any <literal>pages.xml</literal> file
+            </para>
+         </listitem>
+      </itemizedlist>
+      
+      <para>
+         out of the box.
+      </para>
+
+      <para>
+         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>.
+      </para>
+
+      <para>
+         But if you really want a fast edit/compile/test cycle, Seam supports
+         incremental redeployment of JavaBean components. To make use of this
+         functionality, you must deploy the JavaBean components into the
+         <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.
+      </para>
+
+      <para>You need to be aware of the following limitations:</para>
+
+      <itemizedlist>
+         <listitem>
+            <para>
+               the components must be JavaBean components, they cannot be EJB3
+               beans (we are working on fixing this limitation)
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               entities can never be hot-deloyed
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               components deployed via <literal>components.xml</literal> may not
+               be hot-deployed
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               the hot-deployable components will not be visible to any classes
+               deployed outside of <literal>WEB-INF/dev</literal>
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               Seam debug mode must be enabled and 
+               <literal>jboss-seam-debug.jar</literal> must be in
+               <literal>WEB-INF/lib</literal>
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               You must have the Seam filter installed in web.xml
+            </para>
+         </listitem>
+
+         <listitem>
+            <para>
+               You may see errors if the system is placed under any load and
+               debug is enabled.
+            </para>
+         </listitem>
+
+      </itemizedlist>
+
+      <para>
+         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.
+      </para>
+   </section>      
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Gettingstarted.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Gettingstarted.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Gettingstarted.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="gettingstarted">
+    <title>Getting started with Seam, using seam-gen</title>
+
+    <para>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.</para>
+
+    <para>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.</para>
+
+    <para>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.</para>
+
+    <para>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.</para>
+
+    <para>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.</para>
+
+    <section>
+        <title>Before you start</title>
+
+        <para>Make sure you have JDK 5 or JDK 6, JBoss EAP 4.3 CP03 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.</para>
+
+        <para>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:</para>
+
+        <programlisting>-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512</programlisting>
+
+        <para>If you don't have so much memory available, the following is our minimum recommendation:</para>
+
+        <programlisting>-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256</programlisting>
+
+        <para>If you're running JBoss from the command line, you can configure the JVM options in
+            <literal>bin/run.conf</literal>.</para>
+
+        <para>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>.</para>
+    </section>
+
+    <section>
+        <title>Setting up a new Eclipse project</title>
+
+        <para>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:</para>
+
+        <programlisting>cd jboss-seam-2.0.x
+seam setup</programlisting>
+
+        <para>And you will be prompted for the needed information:</para>
+
+        <programlisting>~/workspace/jboss-seam$ ./seam setup
+Buildfile: build.xml
+
+init:
+
+setup:
+     [echo] Welcome to seam-gen :-)
+    [input] Enter your Java project workspace (the directory that contains your Seam projects) [C:/Projects] [C:/Projects]
+/Users/pmuir/workspace
+    [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.2.GA] [C:/Program Files/jboss-4.2.2.GA]
+/Applications/jboss-4.2.2.GA
+    [input] Enter the project name [myproject] [myproject]
+helloworld
+     [echo] Accepted project name as: helloworld
+    [input] Select a RichFaces skin (not applicable if using ICEFaces) [blueSky] ([blueSky], classic, ruby, wine, deepMarine, emeraldTown, sakura, DEFAULT)
+
+    [input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support) [ear]  ([ear], war, )
+
+    [input] Enter the Java package name for your session beans [com.mydomain.helloworld] [com.mydomain.helloworld]
+org.jboss.helloworld
+    [input] Enter the Java package name for your entity beans [org.jboss.helloworld] [org.jboss.helloworld]
+
+    [input] Enter the Java package name for your test cases [org.jboss.helloworld.test] [org.jboss.helloworld.test]
+
+    [input] What kind of database are you using? [hsql]  ([hsql], mysql, oracle, postgres, mssql, db2, sybase, enterprisedb, h2)
+mysql
+    [input] Enter the Hibernate dialect for your database [org.hibernate.dialect.MySQLDialect] [org.hibernate.dialect.MySQLDialect]
+
+    [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb.jar] [lib/hsqldb.jar]
+/Users/pmuir/java/mysql.jar
+    [input] Enter JDBC driver class for your database [com.mysql.jdbc.Driver] [com.mysql.jdbc.Driver]
+
+    [input] Enter the JDBC URL for your database [jdbc:mysql:///test] [jdbc:mysql:///test]
+jdbc:mysql:///helloworld
+    [input] Enter database username [sa] [sa]
+pmuir
+    [input] Enter database password [] []
+
+    [input] skipping input as property hibernate.default_schema.new has already been set.
+    [input] Enter the database catalog name (it is OK to leave this blank) [] []
+
+    [input] Are you working with tables that already exist in the database? [n]  (y, [n], )
+y
+    [input] Do you want to drop and recreate the database tables and data in import.sql each time you deploy? [n]  (y, [n], )
+n
+    [input] Enter your ICEfaces home directory (leave blank to omit ICEfaces) [] []
+
+[propertyfile] Creating new property file: /Users/pmuir/workspace/jboss-seam/seam-gen/build.properties
+     [echo] Installing JDBC driver jar to JBoss server
+     [echo] Type 'seam create-project' to create the new project
+
+BUILD SUCCESSFUL
+Total time: 1 minute 32 seconds
+~/workspace/jboss-seam $ </programlisting>
+
+        <para>The tool provides sensible defaults, which you can accept by just pressing enter at the prompt.</para>
+
+        <para>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.</para>
+
+        <para>If you are working with an existing data model, make sure you tell seam-gen that the tables already exist
+            in the database.</para>
+
+        <para>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.</para>
+
+        <para>Now we can create a new project in our Eclipse workspace directory, by typing:</para>
+
+        <programlisting>seam new-project</programlisting>
+
+        <programlisting>C:\Projects\jboss-seam&gt;seam new-project
+Buildfile: build.xml
+
+...
+
+new-project:
+     [echo] A new Seam project named 'helloworld' was created in the C:\Projects directory
+     [echo] Type 'seam explode' and go to http://localhost:8080/helloworld
+     [echo] Eclipse Users: Add the project into Eclipse using File &gt; New &gt; Project and select General &gt; Project (not Java Project)
+     [echo] NetBeans Users: Open the project in NetBeans
+
+BUILD SUCCESSFUL
+Total time: 7 seconds
+C:\Projects\jboss-seam&gt;</programlisting>
+
+        <para>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 -&gt; Project...
+                -&gt; General -&gt; Project -&gt; 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.</para>
+
+        <para>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 -&gt; Properties -&gt; Java Compiler</literal>.</para>
+
+        <para>Alternatively, you can deploy the project from outside Eclipse by typing <literal>seam explode</literal>.</para>
+
+        <para>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.</para>
+
+        <para>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.)</para>
+
+        <para>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.</para>
+    </section>
+
+    <section>
+        <title>Creating a new action</title>
+
+        <para>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:</para>
+
+        <programlisting>seam new-action</programlisting>
+
+        <para>Seam will prompt for some information, and generate a new facelets page and Seam component for your
+            project.</para>
+
+        <programlisting>C:\Projects\jboss-seam&gt;seam new-action
+Buildfile: build.xml
+
+validate-workspace:
+
+validate-project:
+
+action-input:
+    [input] Enter the Seam component name
+ping
+    [input] Enter the local interface name [Ping]
+
+    [input] Enter the bean class name [PingBean]
+
+    [input] Enter the action method name [ping]
+
+    [input] Enter the page name [ping]
+
+
+setup-filters:
+
+new-action:
+     [echo] Creating a new stateless session bean component with an action method
+     [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
+     [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld
+     [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
+     [copy] Copying 1 file to C:\Projects\helloworld\src\action\org\jboss\helloworld\test
+     [copy] Copying 1 file to C:\Projects\helloworld\view
+     [echo] Type 'seam restart' and go to http://localhost:8080/helloworld/ping.seam
+
+BUILD SUCCESSFUL
+Total time: 13 seconds
+C:\Projects\jboss-seam&gt;</programlisting>
+
+        <para>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></para>
+
+        <para>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.</para>
+
+        <para>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.</para>
+    </section>
+
+    <section>
+        <title>Creating a form with an action</title>
+
+        <para>The next step is to create a form. Type:</para>
+
+        <programlisting>seam new-form</programlisting>
+
+        <programlisting>C:\Projects\jboss-seam&gt;seam new-form
+Buildfile: C:\Projects\jboss-seam\seam-gen\build.xml
+
+validate-workspace:
+
+validate-project:
+
+action-input:
+    [input] Enter the Seam component name
+hello
+    [input] Enter the local interface name [Hello]
+
+    [input] Enter the bean class name [HelloBean]
+
+    [input] Enter the action method name [hello]
+
+    [input] Enter the page name [hello]
+
+
+setup-filters:
+
+new-form:
+     [echo] Creating a new stateful session bean component with an action method
+     [copy] Copying 1 file to C:\Projects\hello\src\com\hello
+     [copy] Copying 1 file to C:\Projects\hello\src\com\hello
+     [copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
+     [copy] Copying 1 file to C:\Projects\hello\view
+     [copy] Copying 1 file to C:\Projects\hello\src\com\hello\test
+     [echo] Type 'seam restart' and go to http://localhost:8080/hello/hello.seam
+
+BUILD SUCCESSFUL
+Total time: 5 seconds
+C:\Projects\jboss-seam&gt;</programlisting>
+
+        <para>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).</para>
+    </section>
+
+    <section>
+        <title>Generating an application from an existing database</title>
+
+        <para>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:</para>
+
+        <programlisting>seam generate-entities</programlisting>
+
+        <para>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.</para>
+    </section>
+    
+    <section>
+        <title>Generating an application from existing JPA/EJB3 entities</title>
+
+        <para>Place your existing, valid entity classes inside the <literal>src/model</literal>. Now type</para>
+
+        <programlisting>seam generate-ui</programlisting>
+
+        <para>Restart the deployment, and go to <literal>http://localhost:8080/helloworld</literal>.</para>
+    </section>
+
+    <section>
+        <title>Deploying the application as an EAR</title>
+
+        <para>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.</para>
+
+        <para>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</para>
+
+        <programlisting>seam -Dprofile=prod deploy</programlisting>
+
+        <para>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>.</para>
+    </section>
+
+    <section id="gettingstarted-hotdeployment">
+        <title>Seam and incremental hot deployment</title>
+
+        <para>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>:</para>
+
+        <programlisting role="XML"><![CDATA[<core:init debug="true">]]></programlisting>
+
+        <para>Now, the following files may be redeployed without requiring a full restart of the web application:</para>
+
+        <itemizedlist>
+            <listitem>
+                <para>any facelets page</para>
+            </listitem>
+
+            <listitem>
+                <para>any <literal>pages.xml</literal> file</para>
+            </listitem>
+        </itemizedlist>
+
+        <para>But if we want to change any Java code, we still need to do a full restart of the application. (In JBoss
+            this may be accomplished by touching the top level deployment descriptor: <literal>application.xml</literal>
+            for an EAR deployment, or <literal>web.xml</literal> for a WAR deployment.)</para>
+
+        <para>But if you really want a fast edit/compile/test cycle, Seam supports incremental redeployment of JavaBean
+            components. To make use of this functionality, you must deploy the JavaBean components into the
+                <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.</para>
+
+        <para>You need to be aware of the following limitations:</para>
+
+        <itemizedlist>
+            <listitem>
+                <para>the components must be JavaBean components, they cannot be EJB3 beans (we are working on fixing
+                    this limitation)</para>
+            </listitem>
+
+            <listitem>
+                <para>entities can never be hot-deloyed</para>
+            </listitem>
+
+            <listitem>
+                <para>components deployed via <literal>components.xml</literal> may not be hot-deployed</para>
+            </listitem>
+
+            <listitem>
+                <para>the hot-deployable components will not be visible to any classes deployed outside of
+                        <literal>WEB-INF/dev</literal></para>
+            </listitem>
+
+            <listitem>
+               <para>Seam debug mode must be enabled and <literal>jboss-seam-debug.jar</literal>
+                   must be in <literal>WEB-INF/lib</literal></para>
+            </listitem>
+            
+            <listitem>
+               <para>You must have the Seam filter installed in web.xml</para>
+            </listitem>
+            
+            <listitem>
+               <para>You may see errors if the system is placed under any load and debug is enabled.</para>
+            </listitem>
+            
+        </itemizedlist>
+
+        <para>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.</para>
+    </section>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Gettingstarted.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Groovy.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Groovy.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Groovy.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="groovy">
+    <title>Groovy integration</title>
+
+    <para>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.</para>
+
+    <para>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.</para>
+        
+    <note>
+        <title>Technology preview </title>    
+    	<para>Groovy integration in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+    </note>
+
+    <section>
+        <title id="groovy-intro">Groovy introduction</title>
+
+        <para>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:</para>
+
+        <itemizedlist>
+            <listitem>
+                <para>Java syntax is supported in Groovy: Java code is Groovy code, making the learning curve very
+                    smooth</para>
+            </listitem>
+
+            <listitem>
+                <para>Groovy objects are Java objects, and Groovy classes are Java classes: Groovy integrates smoothly
+                    with existing Java libraries and frameworks.</para>
+            </listitem>
+        </itemizedlist>
+
+        <para>TODO: write a quick overview of the Groovy syntax add-on</para>
+    </section>
+
+    <section>
+        <title>Writing Seam applications in Groovy</title>
+
+        <para>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.</para>
+
+        <section>
+            <title>Writing Groovy components</title>
+
+            <para>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.</para>
+
+            <section>
+                <title>Entity</title>
+
+                <programlisting role="JAVA">    @Entity
+    @Name("hotel")
+    class Hotel implements Serializable
+    {
+        @Id @GeneratedValue
+        Long id
+
+        @Length(max=50) @NotNull
+        String name
+
+        @Length(max=100) @NotNull
+        String address
+
+        @Length(max=40) @NotNull
+        String city
+
+        @Length(min=2, max=10) @NotNull
+        String state
+
+        @Length(min=4, max=6) @NotNull
+        String zip
+
+        @Length(min=2, max=40) @NotNull
+        String country
+
+        @Column(precision=6, scale=2)
+        BigDecimal price
+
+        @Override
+        String toString()
+        {
+            return "Hotel(${name},${address},${city},${zip})"
+        }
+    }</programlisting>
+
+                <para>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.</para>
+
+            </section>
+
+            <section>
+                <title>Seam component</title>
+
+                <para>Writing Seam components in Groovy is in no way different than in Java: annotations are used to
+                    mark the class as a Seam component.</para>
+
+                <programlisting role="JAVA">@Scope(ScopeType.SESSION)
+ at Name("bookingList")
+class BookingListAction implements Serializable
+{
+    @In EntityManager em
+    @In User user
+    @DataModel List&lt;Booking&gt; bookings
+    @DataModelSelection Booking booking
+    @Logger Log log
+
+    @Factory public void getBookings()
+    {
+        bookings = em.createQuery('''
+                select b from Booking b
+                where b.user.username = :username
+                order by b.checkinDate''')
+            .setParameter("username", user.username)
+            .getResultList()
+    }
+    
+    public void cancel()
+    {
+        log.info("Cancel booking: #{bookingList.booking.id} for #{user.username}")
+        Booking cancelled = em.find(Booking.class, booking.id)
+        if (cancelled != null) em.remove( cancelled )
+        getBookings()
+        FacesMessages.instance().add("Booking cancelled for confirmation number #{bookingList.booking.id}", new Object[0])
+    }
+}</programlisting>
+
+            </section>
+        </section>
+
+        <section>
+            <title>seam-gen</title>
+
+            <para>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>.</para>
+        </section>
+    </section>
+
+    <section>
+        <title>Deployment</title>
+
+        <para>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).</para>
+
+        <para>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.</para>
+
+        <section>
+            <title>Deploying Groovy code</title>
+
+            <para>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.</para>
+        </section>
+
+        <section>
+            <title>Native .groovy file deployment at development time</title>
+
+            <para>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).</para>
+
+            <para>Be aware that the native .groovy file deployment suffers the same limitations as the regular Seam
+                hotdeployment:</para>
+
+            <itemizedlist>
+                <listitem>
+                    <para>The components must be JavaBeans or GroovyBeans. They cannot be EJB3 bean</para>
+                </listitem>
+
+                <listitem>
+                    <para>Entities cannot be hotdeployed</para>
+                </listitem>
+
+                <listitem>
+                    <para>The hot-deployable components will not be visible to any classes deployed outside of
+                            <literal>WEB-INF/dev</literal></para>
+                </listitem>
+
+                <listitem>
+                    <para>Seam debug mode must be enabled</para>
+                </listitem>
+            </itemizedlist>
+
+        </section>
+
+        <section>
+            <title>seam-gen</title>
+
+            <para>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.</para>
+
+            <para>You will find a live example of the Booking demo written completely in Groovy and supporting
+                incremental hot deployment in <filename>examples/groovybooking</filename>.</para>
+        </section>
+    </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Groovy.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Hsearch.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Hsearch.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Hsearch.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="search">
+  <title>Hibernate Search</title>
+
+  <section>
+    <title>Introduction</title>
+
+	<para>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.</para>
+
+    <para>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.</para>
+
+	<para>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.</para>
+	
+	<note>
+        <title>Technology preview </title>    
+    	<para>Hibernate Search integration in Seam is marked as technology preview,
+    	 so standard support is not guaranteed.</para>     
+    </note>
+
+  </section>
+
+  <section>
+    <title>Configuration</title>
+
+    <para>Hibernate Search is configured either in the
+    <filename>META-INF/persistence.xml</filename> or
+    <filename>hibernate.cfg.xml</filename> file.</para>
+
+	<para>Hibernate Search configuration has sensible defaults for most
+	configuration parameters. Here is a minimal persistence unit configuration
+	to get started.</para>
+
+    <programlisting role="XML"><![CDATA[<persistence-unit name="sample">
+   <jta-data-source>java:/DefaultDS</jta-data-source>
+   <properties>
+      [...]
+      <!-- use a file system based index -->
+      <property name="hibernate.search.default.directory_provider" 
+         value="org.hibernate.search.store.FSDirectoryProvider"/>
+      <!-- directory where the indexes will be stored -->
+      <property name="hibernate.search.default.indexBase" 
+         value="/Users/prod/apps/dvdstore/dvdindexes"/>
+   </properties>
+</persistence-unit>]]></programlisting>
+
+    <para>If you plan to target Hibernate Annotations or EntityManager 3.2.x
+    (embedded into JBoss EAP AS 4.3), you also need to configure the
+    appropriate event listeners.</para>
+
+   <programlisting role="XML"><![CDATA[<persistence-unit name="sample">
+   <jta-data-source>java:/DefaultDS</jta-data-source>
+   <properties>
+      [...]
+      <!-- use a file system based index -->
+      <property name="hibernate.search.default.directory_provider" 
+                value="org.hibernate.search.store.FSDirectoryProvider"/>
+      <!-- directory where the indexes will be stored -->
+      <property name="hibernate.search.default.indexBase" 
+                value="/Users/prod/apps/dvdstore/dvdindexes"/>
+
+      <property name="hibernate.ejb.event.post-insert" 
+                value="org.hibernate.search.event.FullTextIndexEventListener"/>
+      <property name="hibernate.ejb.event.post-update" 
+                value="org.hibernate.search.event.FullTextIndexEventListener"/>
+      <property name="hibernate.ejb.event.post-delete" 
+                value="org.hibernate.search.event.FullTextIndexEventListener"/>
+
+   </properties>
+</persistence-unit>]]></programlisting>
+
+    <note>
+      <para>This step is no longer necessary if Hibernate Annotation or
+      EntityManager 3.3.x are used.</para>
+    </note>
+
+    <para>In addition to the configuration file, the following jars have to be
+    deployed:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>hibernate-search.jar</para>
+      </listitem>
+
+      <listitem>
+        <para>hibernate-commons-annotations.jar</para>
+      </listitem>
+
+      <listitem>
+        <para>lucene-core.jar</para>
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>If you deploy those in a EAR, don't forget to update
+      <filename>application.xml</filename></para>
+    </note>
+  </section>
+
+  <section>
+    <title>Usage</title>
+
+    <para>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.</para>
+
+    <para>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>).</para>
+
+    <para>When Hibernate Search is present, JBoss Seam injects a
+    <classname>FullTextSession</classname>.</para>
+
+    <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("search")
+public class FullTextSearchAction implements FullTextSearch, Serializable {
+
+   @In FullTextSession session;
+
+   public void search(String searchString) {
+      org.apache.lucene.query.Query luceneQuery = getLuceneQuery();
+      org.hibernate.Query query session.createFullTextQuery(luceneQuery, Product.class);
+      searchResults = query
+            .setMaxResults(pageSize + 1)
+            .setFirstResult(pageSize * currentPage)
+            .list();
+   }
+   [...]
+}]]></programlisting>
+
+    <note>
+      <para><classname>FullTextSession</classname> extends
+      <classname>org.hibernate.Session</classname> so that it can be used as a
+      regular Hibernate Session</para>
+    </note>
+
+    <para>If the Java Persistence API is used, a smoother integration is
+    proposed.</para>
+
+    <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("search")
+public class FullTextSearchAction implements FullTextSearch, Serializable {
+   
+   @In FullTextEntityManager em;
+
+   public void search(String searchString) {
+      org.apache.lucene.query.Query luceneQuery = getLuceneQuery();
+      javax.persistence.Query query = em.createFullTextQuery(luceneQuery, Product.class);
+      searchResults = query
+            .setMaxResults(pageSize + 1)
+            .setFirstResult(pageSize * currentPage)
+            .getResultList();
+   }
+   [...]
+}]]></programlisting>
+
+    <para>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>.</para>
+
+    <para>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.</para>
+
+    <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("search")
+public class FullTextSearchAction implements FullTextSearch, Serializable {
+  
+   @PersistenceContext EntityManager em;
+
+   public void search(String searchString) {
+      org.apache.lucene.query.Query luceneQuery = getLuceneQuery();
+      FullTextEntityManager ftEm = (FullTextEntityManager) em;
+      javax.persistence.Query query = ftEm.createFullTextQuery(luceneQuery, Product.class);
+      searchResults = query
+            .setMaxResults(pageSize + 1)
+            .setFirstResult(pageSize * currentPage)
+            .getResultList();
+   }
+   [...]
+}]]></programlisting>
+
+
+    <important>
+      <para>For people accustomed to Hibernate Search out of Seam, note that
+      using <methodname>Search.createFullTextSession</methodname> is not
+      necessary.</para>
+    </important>
+
+    <para>Check the DVDStore or the blog examples of the JBoss Seam
+    distribution for a concrete use of Hibernate Search.</para>
+  </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Hsearch.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/I18n.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/I18n.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/I18n.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<chapter id="i18n">
+   <title>Internationalization, localization and themes</title>
+
+   <para>
+      Seam makes it easy to build internationalized applications. First, let's 
+      walk through all the stages needed to internationalize and localize your 
+      app. Then we'll take a look at the components Seam bundles.
+   </para>
+
+   <section>
+      <title>Internationalizing your app</title>
+
+      <para>
+         A JEE application consists of many components and all of them must be 
+         configured properly for your application to be localized.
+      </para>
+
+      <para>
+         Starting at the bottom, the first step is to ensure that your database 
+         server and client is using the correct character encoding for your 
+         locale. Normally you'll want to use UTF-8. How to do this is outside
+         the scope of this tutorial.
+      </para>
+
+      <section>
+         <title>Application server configuration</title>
+
+         <para>
+            To ensure that the application server receives the request 
+            parameters in the correct encoding from client requests you have to 
+            configure the JBoss-web connector. Add
+            the <literal>URIEncoding="UTF-8"</literal> attribute to the 
+            connector configuration. For JBoss EAP AS 4.3 change 
+            <literal>${JBOSS_HOME}/server/production/deploy/jboss-web.deployer/server.xml</literal>:
+         </para>
+
+         <programlisting role="XML">&lt;Connector port="8080" URIEncoding="UTF-8"/&gt;</programlisting>
+
+         <para>
+            There is alternative which is probably better. You can tell JBoss AS
+            that the encoding for the request parameters will be taken from the
+            request:
+         </para>
+
+         <programlisting role="XML">&lt;Connector port="8080" useBodyEncodingForURI="true"/&gt;</programlisting>
+      </section>
+
+      <section>
+         <title>Translated application strings</title>
+
+         <para>
+            You'll also need localized strings for all the <emphasis>messages</emphasis>
+            in your application (for example field labels on your views). First 
+            you need to ensure that your resource bundle is encoded using the 
+            desired character encoding. By default ASCII is used. Although ASCII 
+            is enough for many languages, it doesn't provide characters for all 
+            languages.
+         </para>
+
+         <para>
+            Resource bundles must be created in ASCII, or use Unicode escape 
+            codes to represent Unicode characters. Since you don't compile a 
+            property file to byte code, there is no way to tell the JVM which 
+            character set to use.  So you must use either ASCII characters or 
+            escape characters not in the ASCII character set.
+            You can represent a Unicode character in any Java file using \uXXXX,
+            where XXXX is the hexidecimal representation of the character.
+         </para>
+         
+         <para>
+            You can write your translation of labels to your messages resource 
+            bundle in the native encoding and then convert the content of the 
+            file into the escaped format through the tool <literal>native2ascii</literal>
+            provided in the JDK. This tool will convert a file written in your 
+            native encoding to one that represents non-ASCII characters as
+            Unicode escape sequences.
+         </para>
+
+         <para>
+            Usage of this tool is described 
+            <ulink url="http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html#intl">here for Java 5</ulink>
+            or 
+            <ulink url="http://java.sun.com/javase/6/docs/technotes/tools/#intl">here for Java 6</ulink>.
+            For example, to convert a file from UTF-8:
+         </para>
+         
+         <programlisting><prompt>$ native2ascii -encoding UTF-8 messages_cs.properties &gt; messages_cs_escaped.properties</prompt></programlisting>
+   
+      </section>
+
+      <section>
+         <title>Other encoding settings</title>
+
+         <para>
+            We need to make sure that the view displays your localized data and 
+            messages using the correct character set and also any data submitted
+            uses the correct encoding.
+         </para>
+
+         <para>
+            To set the display character encoding, you need to use the 
+            <literal>&lt;f:view locale="cs_CZ"/&gt;</literal> tag (here we tell 
+            JSF to use the Czech locale). You may want to change the encoding of 
+            the xml document itself if you want to embed localized strings in the
+            xml. To do this alter the encoding attribute in xml declaration 
+            <literal>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</literal> as 
+            required.
+         </para>
+
+         <para>
+            Also JSF/Facelets should submit any requests using the specified
+            character encoding, but to make sure any requests that don't specify
+            an encoding you can force the request encoding using a servlet 
+            filter. Configure this in <literal>components.xml</literal>:
+         </para>
+
+         <programlisting role="XML"><![CDATA[<web:character-encoding-filter encoding="UTF-8" 
+   override-client="true" 
+   url-pattern="*.seam" />]]></programlisting>
+      </section>
+   </section>
+
+  <section>
+    <title>Locales<anchor id="locales" /></title>
+
+    <para>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:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>If there is a locale associated with the HTTP request (the
+        browser locale), and that locale is in the list of supported locales
+        from <literal>faces-config.xml</literal>, use that locale for the rest
+        of the session.</para>
+      </listitem>
+
+      <listitem>
+        <para>Otherwise, if a default locale was specified in the
+        <literal>faces-config.xml</literal>, use that locale for the rest of
+        the session.</para>
+      </listitem>
+
+      <listitem>
+        <para>Otherwise, use the default locale of the server.</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>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.</para>
+
+    <para>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:</para>
+
+    <programlisting role="XHTML">&lt;h:selectOneMenu value="#{localeSelector.language}"&gt;
+    &lt;f:selectItem itemLabel="English" itemValue="en"/&gt;
+    &lt;f:selectItem itemLabel="Deutsch" itemValue="de"/&gt;
+    &lt;f:selectItem itemLabel="Francais" itemValue="fr"/&gt;
+&lt;/h:selectOneMenu&gt;
+&lt;h:commandButton action="#{localeSelector.select}" value="#{messages['ChangeLanguage']}"/&gt;</programlisting>
+
+    <para>Or, if you want a list of all supported locales from <literal>
+    faces-config.xml</literal>, just use:</para>
+
+    <programlisting role="XHTML">&lt;h:selectOneMenu value="#{localeSelector.localeString}"&gt;
+    &lt;f:selectItems value="#{localeSelector.supportedLocales}"/&gt;
+&lt;/h:selectOneMenu&gt;
+&lt;h:commandButton action="#{localeSelector.select}" value="#{messages['ChangeLanguage']}"/&gt;</programlisting>
+
+    <para>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.</para>
+  </section>
+
+  <section>
+    <title>Labels<anchor id="labels" /></title>
+
+    <para>JSF supports internationalization of user interface labels and
+    descriptive text via the use of <literal>&lt;f:loadBundle /&gt;</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.</para>
+
+    <section>
+      <title>Defining labels</title>
+
+      <para>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.</para>
+
+      <para>So, in <literal>messages_en.properties</literal>:</para>
+
+      <programlisting>Hello=Hello</programlisting>
+
+      <para>And in <literal>messages_en_AU.properties</literal>:</para>
+
+      <programlisting>Hello=G'day</programlisting>
+
+      <para>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.</para>
+
+      <programlisting role="XML">&lt;core:resource-loader&gt;
+    &lt;core:bundle-names&gt;
+        &lt;value&gt;mycompany_messages&lt;/value&gt;
+        &lt;value&gt;standard_messages&lt;/value&gt;       
+    &lt;/core:bundle-names&gt;
+&lt;/core:resource-loader&gt;</programlisting>
+
+      <para>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>.</para>
+
+      <para>You can even specify an explicit bundle name in <literal>
+      pages.xml</literal>:</para>
+
+      <programlisting role="XML">&lt;page view-id="/welcome/hello.jsp" bundle="HelloMessages"/&gt;</programlisting>
+
+      <para>Then we could use messages defined in <literal>
+      HelloMessages.properties</literal> on <literal>
+      /welcome/hello.jsp</literal>.</para>
+    </section>
+
+    <section>
+      <title>Displaying labels</title>
+
+      <para>If you define your labels using the Seam resource bundle, you'll
+      be able to use them without having to type <literal> &lt;f:loadBundle
+      ... /&gt;</literal> on every page. Instead, you can simply type:</para>
+
+      <programlisting role="XHTML">&lt;h:outputText value="#{messages['Hello']}"/&gt;</programlisting>
+
+      <para>or:</para>
+
+      <programlisting role="XHTML">&lt;h:outputText value="#{messages.Hello}"/&gt;</programlisting>
+
+      <para>Even better, the messages themselves may contain EL
+      expressions:</para>
+
+      <programlisting>Hello=Hello, #{user.firstName} #{user.lastName}</programlisting>
+
+      <programlisting>Hello=G'day, #{user.firstName}</programlisting>
+
+      <para>You can even use the messages in your code:</para>
+
+      <programlisting role="JAVA">@In private Map&lt;String, String&gt; messages;</programlisting>
+
+      <programlisting role="JAVA">@In("#{messages['Hello']}") private String helloMessage;</programlisting>
+    </section>
+
+    <section>
+      <title>Faces messages</title>
+
+      <para>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:</para>
+
+      <programlisting role="JAVA">@Name("hello")
+ at Stateless
+public class HelloBean implements Hello {
+    @In FacesMessages facesMessages;
+    
+    public String sayIt() {
+        facesMessages.addFromResourceBundle("Hello");
+    }
+}</programlisting>
+
+      <para>This will display <literal>Hello, Gavin King</literal> or
+      <literal>G'day, Gavin</literal>, depending upon the user's
+      locale.</para>
+    </section>
+  </section>
+
+  <section>
+    <title>Timezones</title>
+
+    <para>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> &lt;f:convertDateTime&gt;</literal>. This is an extremely
+    inconvenient default behavior.</para>
+
+    <para>Seam overrides this behavior, and defaults all dates and times to
+    the Seam timezone. In addition, Seam provides the <literal>
+    &lt;s:convertDateTime&gt;</literal> tag which always performs conversions
+    in the Seam timezone.</para>
+  </section>
+
+  <section>
+    <title>Themes</title>
+
+    <para>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.</para>
+
+    <para>First, configure the set of supported themes:</para>
+
+    <programlisting role="XML">&lt;theme:theme-selector cookie-enabled="true"&gt;
+    &lt;theme:available-themes&gt;
+        &lt;value&gt;default&lt;/value&gt;
+        &lt;value&gt;accessible&lt;/value&gt;
+        &lt;value&gt;printable&lt;/value&gt;
+    &lt;/theme:available-themes&gt;
+&lt;/theme:theme-selector&gt;</programlisting>
+
+    <para>Note that the first theme listed is the default theme.</para>
+
+    <para>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:</para>
+
+    <programlisting>css ../screen.css
+template /template.xhtml</programlisting>
+
+    <para>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).</para>
+
+    <para>Now we can use these entries in our JSP or facelets pages. For
+    example, to theme the stylesheet in a facelets page:</para>
+
+    <programlisting role="XHTML">&lt;link href="#{theme.css}" rel="stylesheet" type="text/css" /&gt;</programlisting>
+
+    <para>Or, when the page definition resides in a subdirectory:</para>
+
+    <programlisting role="XHTML">&lt;link href="#{facesContext.externalContext.requestContextPath}#{theme.css}" 
+    rel="stylesheet" type="text/css" /&gt;</programlisting>
+
+    <para>Most powerfully, facelets lets us theme the template used by a
+    <literal>&lt;ui:composition&gt;</literal>:</para>
+
+    <programlisting role="XHTML">&lt;ui:composition xmlns="http://www.w3.org/1999/xhtml"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:h="http://java.sun.com/jsf/html"
+    xmlns:f="http://java.sun.com/jsf/core"
+    template="#{theme.template}"&gt;</programlisting>
+
+    <para>Just like the locale selector, there is a built-in theme selector to
+    allow the user to freely switch themes:</para>
+
+    <programlisting role="XHTML">&lt;h:selectOneMenu value="#{themeSelector.theme}"&gt;
+    &lt;f:selectItems value="#{themeSelector.themes}"/&gt;
+&lt;/h:selectOneMenu&gt;
+&lt;h:commandButton action="#{themeSelector.select}" value="Select Theme"/&gt;</programlisting>
+  </section>
+
+  <section>
+    <title>Persisting locale and theme preferences via cookies</title>
+
+    <para>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>:</para>
+
+    <programlisting role="XML">&lt;theme:theme-selector cookie-enabled="true"&gt;
+    &lt;theme:available-themes&gt;
+        &lt;value&gt;default&lt;/value&gt;
+        &lt;value&gt;accessible&lt;/value&gt;
+        &lt;value&gt;printable&lt;/value&gt;
+    &lt;/theme:available-themes&gt;
+&lt;/theme:theme-selector&gt;
+
+&lt;international:locale-selector cookie-enabled="true"/&gt;</programlisting>
+  </section>
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/I18n.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Itext.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Itext.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Itext.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2402 @@
+<chapter id="itext">
+    <title>iText PDF generation</title>
+    <para>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.</para>
+
+    <section id="itext.intro">
+        <title>Using PDF Support</title>
+        <para>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. </para>
+        <para> 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.</para>
+
+        <para> 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. </para>
+
+        <section id="itext.document">
+            <title>Creating a document</title>
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--        <colspec colnum="1" colwidth="1*"/> -->
+			<!--      <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:document&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para> 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.</para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <literal>type</literal> &#8212; 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.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>pageSize</literal> &#8212; 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. </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>orientation</literal> &#8212; 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. </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>margins</literal> &#8212; The left, right, top and bottom
+                                            margin values. </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>marginMirroring</literal> &#8212; Indicates that margin
+                                            settings should be reversed an alternating pages.</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>disposition</literal> &#8212; 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>.</para>
+                                    </listitem>
+                                </itemizedlist>
+
+
+                                <para>
+                                    <emphasis>Metadata Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <literal>title</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>subject</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>keywords</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>author</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>creator</literal>
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:document xmlns:p="http://jboss.com/products/seam/pdf">                                                      
+  The document goes here.                                                                                             
+</p:document>]]></programlisting>
+
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+
+        </section>
+
+
+        <section id="itext.text">
+            <title>Basic Text Elements</title>
+
+            <para> 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>&lt;p:image&gt;</literal> and <literal>&lt;p:paragraph&gt;</literal> are the
+                basic foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> provide style
+                information to all the content surrounging them. </para>
+
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--        <colspec colnum="1" colwidth="1*"/> -->
+			<!--      <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:paragraph&gt;</literal>
+                                </para>
+                            </entry>
+
+
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para> Most uses of text should be sectioned into paragraphs so that text fragments can
+                                    be flowed, formatted and styled in logical groups.</para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <literal>firstLineIndent</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>extraParagraphSpace</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>leading</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>multipliedLeading</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>spacingBefore</literal> &#8212; The blank space to be inserted
+                                            before the element. </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>spacingAfter</literal> &#8212; The blank space to be inserted
+                                            after the element.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>indentationLeft</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>indentationRight</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>keepTogether</literal>
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:paragraph alignment="justify">
+    This is a simple document.  It isn't very fancy.
+</p:paragraph>]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:text&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+                                <para> 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. </para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para><literal>value</literal> &#8212; The value to be displayed. This will
+                                            typically be a value binding expression.</para>
+                                    </listitem>
+                                </itemizedlist>
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+                                <programlisting role="XHTML"><![CDATA[<p:paragraph>
+    The item costs <p:text value="#{product.price}">
+        <f:convertNumber type="currency" currencySymbol="$"/>
+    </p:text>
+</p:paragraph>]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:html&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+                                <para> The <literal>html</literal> tag renders HTML content into the PDF.                                                                      
+                                </para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para><literal>value</literal> &#8212; The text to be displayed.</para>
+                                    </listitem>
+                                </itemizedlist>
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+                                <programlisting role="XHTML"><![CDATA[
+<p:html value="This is HTML with <b>some markup</b>." />
+<p:html>
+    <h1>This is more complex HTML</h1>
+    <ul>
+        <li>one</li>
+        <li>two</li>
+        <li>three</li>
+    </ul>
+</p:html>
+
+<p:html>
+    <s:formattedText value="*This* is |Seam Text| as HTML.  It's very^cool^." />
+</p:html>                                    
+]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:font&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+                                <para> The font tag defines the default font to be used for all text inside of it. </para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para><literal>name</literal> &#8212; The font name, for example:
+                                                <literal>COURIER</literal>, <literal>HELVETICA</literal>,
+                                                <literal>TIMES-ROMAN</literal>, <literal>SYMBOL</literal> or
+                                                <literal>ZAPFDINGBATS</literal>.</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>size</literal> &#8212; The point size of the font.</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>style</literal> &#8212; 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></para>
+
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>encoding</literal> &#8212; The character set encoding.</para>
+                                    </listitem>
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+                                <programlisting role="XHTML"><![CDATA[<p:font name="courier" style="bold" size="24">
+    <p:paragraph>My Title</p:paragraph>
+</p:font>]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:newPage&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+
+                                <para><literal>p:newPage</literal> inserts a page break. </para>
+
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+                                <programlisting role="XHTML"><![CDATA[<p:newPage />]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:image&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+
+                                <para><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. </para>
+
+
+
+                                <para>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. </para>
+
+
+
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para><literal>value</literal> &#8212; A resource name or a method
+                                            expression binding to an application-generated image. </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>rotation</literal> &#8212; The rotation of the image in
+                                            degrees. </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>height</literal> &#8212; The height of the image. </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>width</literal> &#8212; The width of the image. </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>alignment</literal>&#8212; The alignment of the image. (see
+                                                <xref linkend="itext.alignment"/> for possible values) </para>
+
+                                    </listitem>
+                                    <listitem>
+
+                                        <para>
+                                            <literal>alt</literal> &#8212; Alternative text representation for the
+                                            image.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>indentationLeft</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>indentationRight</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>spacingBefore</literal> &#8212; The blank space to be inserted
+                                            before the element.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>spacingAfter</literal> &#8212; The blank space to be inserted
+                                            after the element.</para>
+
+                                    </listitem>
+                                    <listitem>
+
+                                        <para>
+                                            <literal>widthPercentage</literal>
+                                        </para>
+
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>initialRotation</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+
+                                        <para>
+                                            <literal>dpi</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>scalePercent</literal> &#8212; 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.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>wrap</literal>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>underlying</literal>
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+
+                                <programlisting role="XHTML"><![CDATA[<p:image value="/jboss.jpg" />]]></programlisting>
+                                <programlisting role="XHTML"><![CDATA[<p:image value="#{images.chart}" />]]></programlisting>
+
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:anchor&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para><literal>p:anchor</literal> defines clickable links from a document. It supports
+                                    the following attributes:</para>
+
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para><literal>name</literal> &#8212; The name of an in-document anchor
+                                            destination.</para>
+
+                                    </listitem>
+
+                                    <listitem>
+
+                                        <para><literal>reference</literal> &#8212; 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.</para>
+                                    </listitem>
+                                </itemizedlist>
+
+
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:listItem><p:anchor reference="#reason1">Reason 1</p:anchor></p:listItem> 
+...
+<p:paragraph>
+    <p:anchor name="reason1">It's the quickest way to get "rich"</p:anchor> 
+    ... 
+</p:paragraph>]]></programlisting>
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+
+        </section>
+
+        <section id="itext.header">
+            <title>Headers and Footers</title>
+
+
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--         <colspec colnum="1" colwidth="1*"/> -->
+			<!--       <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:header&gt;</literal>
+                                </para>
+                                <para>
+                                    <literal>&lt;p:footer&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para>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. </para>
+
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>alignment</literal> &#8212; The alignment of the header/footer
+                                            box section. (see <xref linkend="itext.alignment"/> for alignment values)</para>
+
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>backgroundColor</literal> &#8212; The background color of the
+                                            header/footer box. (see <xref linkend="itext.colors"/> for color values)
+                                        </para>
+                                    </listitem>
+
+
+
+
+                                    <listitem>
+                                        <para><literal>borderColor</literal> &#8212; 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) </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>borderWidth</literal> &#8212; 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>.</para>
+                                    </listitem>
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:facet name="header">
+  <p:font size="12">
+    <p:footer borderWidthTop="1" borderColorTop="blue" 
+              borderWidthBottom="0" alignment="center">
+        Why Seam? [<p:pageNumber />]
+    </p:footer>
+  </p:font>
+</f:facet>]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+                            <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:pageNumber&gt;</literal>
+                                </para>
+                            </entry>
+                            <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para>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.</para>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML">&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; 
+          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;
+    Why Seam? [&lt;p:pageNumber /&gt;]
+&lt;/p:footer&gt;</programlisting>
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+        </section>
+
+
+
+
+        <section id="itext.chapters">
+            <title>Chapters and Sections</title>
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--    <colspec colnum="1" colwidth="1*"/> -->
+			<!--      <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+                        <row>
+				          <entry valign="top"> 
+                                <para>
+                                    <literal>&lt;p:chapter&gt;</literal>
+                                </para>
+                                <para>
+                                    <literal>&lt;p:section&gt;</literal>
+                                </para>
+                            </entry>
+			        <entry valign="top"> 
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+                                <para>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. </para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>alignment</literal> &#8212; The alignment of the header/footer
+                                            box section. (see <xref linkend="itext.alignment"/> for alignment values)</para>
+
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>number</literal> &#8212; The chapter number. Every chapter
+                                            should be assigned a chapter number.</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>numberDepth</literal> &#8212; 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.</para>
+                                    </listitem>
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+
+                                <programlisting role="XHTML"><![CDATA[<p:document xmlns:p="http://jboss.com/products/seam/pdf"
+            title="Hello">
+
+   <p:chapter number="1">
+      <p:title><p:paragraph>Hello</p:paragraph></p:title>
+      <p:paragraph>Hello #{user.name}!</p:paragraph>
+   </p:chapter>
+
+   <p:chapter number="2">
+      <p:title><p:paragraph>Goodbye</p:paragraph></p:title>
+      <p:paragraph>Goodbye #{user.name}.</p:paragraph>
+   </p:chapter>
+
+</p:document> ]]></programlisting>
+
+
+                            </entry>
+                        </row>
+                        <row>
+				     <entry valign="top">
+                                <para>
+                                    <literal>&lt;p:header&gt;</literal>
+                                </para>
+                            </entry>
+			         <entry valign="top"> 
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+
+                                <para>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>. </para>
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+        </section>
+
+
+        <section id="itext.list">
+            <title>Lists</title>
+
+            <para>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. </para>
+
+            <programlisting role="XHTML"><![CDATA[<p:document xmlns:p="http://jboss.com/products/seam/pdf"
+            xmlns:ui="http://java.sun.com/jsf/facelets"
+            title="Hello">
+   <p:list style="numbered">
+      <ui:repeat value="#{documents}" var="doc">
+         <p:listItem>#{doc.name}</p:listItem>
+      </ui:repeat>
+   </p:list>
+</p:document>]]></programlisting>
+
+
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--           <colspec colnum="1" colwidth="1*"/> -->
+			<!--           <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+                        <row>
+				    <entry valign="top"> 
+                                <para>
+                                    <literal>&lt;p:list&gt;</literal>
+                                </para>
+                            </entry>
+			       <entry valign="top"> 
+                                <!-- 
+                    <para>
+                        <emphasis>Description</emphasis>
+                    </para>
+                    <para>...</para>
+                    -->
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+                                <itemizedlist>
+
+                                    <listitem>
+                                        <para><literal>style</literal> &#8212; 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.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para><literal>listSymbol</literal> &#8212; For bulleted lists, specifies
+                                            the bullet symbol. </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>indent</literal> &#8212; The indentation level of the
+                                        list.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>lowerCase</literal> &#8212; For list styles using letters,
+                                            indicates whether the letters should be lower case.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>charNumber</literal> &#8212; For ZAPFDINGBATS, indicates the
+                                            character code of the bullet character.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>numberType</literal> &#8212; For ZAPFDINGBATS_NUMBER,
+                                            indicates the numbering style.</para>
+                                    </listitem>
+
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:list style="numbered">
+  <ui:repeat value="#{documents}" var="doc">
+    <p:listItem>#{doc.name}</p:listItem>
+  </ui:repeat>
+</p:list>]]></programlisting>
+
+                            </entry>
+                        </row>
+                        <row>
+				     <entry valign="top"> 
+                                <para>
+                                    <literal>&lt;p:listItem&gt;</literal>
+                                </para>
+                            </entry>
+			       <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para><literal>p:listItem</literal> supports the following attributes:</para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>alignment</literal> &#8212; The alignment of the header/footer
+                                            box section. (see <xref linkend="itext.alignment"/> for alignment values)</para>
+
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>alignment</literal> &#8212; The alignment of the list item.
+                                            (See <xref linkend="itext.alignment"/> for possible values)</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>indentationLeft</literal> &#8212; The left indentation
+                                            amount.</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>indentationRight</literal> &#8212; The right indentation
+                                            amount.</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>listSymbol</literal> &#8212; Overrides the default list
+                                            symbol for this list item.</para>
+                                    </listitem>
+
+
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML">...</programlisting>
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+
+
+
+
+        </section>
+
+        <section id="itext.tables">
+            <title>Tables</title>
+
+            <para>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.</para>
+
+
+
+
+            <informaltable>
+                <tgroup cols="2">
+			<!--    <colspec colnum="1" colwidth="1*"/> -->
+			<!--    <colspec colnum="2" colwidth="3*"/> -->
+
+                    <tbody>
+                        <row>
+				    <entry valign="top">
+			         <para>
+                                    <literal>&lt;p:table&gt;</literal>
+                                </para>
+                            </entry>
+			       <entry valign="top">
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para><literal>p:table</literal> supports the following attributes.</para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+                                <itemizedlist>
+
+
+                                    <listitem>
+                                        <para><literal>columns</literal> &#8212; The number of columns (cells) that
+                                            make up a table row.</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>widths</literal> &#8212; 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.</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>headerRows</literal> &#8212; The initial number of rows which
+                                            are considered to be headers or footer rows and should be repeated if the
+                                            table spans multiple pages. </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>footerRows</literal> &#8212; 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</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>widthPercentage</literal> &#8212; The percentage of the page
+                                            width that the table spans.</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para><literal>horizontalAlignment</literal> &#8212; The horizontal
+                                            alignment of the table. (See <xref linkend="itext.alignment"/> for possible
+                                            values)</para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>skipFirstHeader</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>runDirection</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>lockedWidth</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>splitRows</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>spacingBefore</literal> &#8212; The blank space to be
+                                            inserted before the element.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para><literal>spacingAfter</literal> &#8212; The blank space to be inserted
+                                            after the element.</para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <literal>extendLastRow</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>headersInEvent</literal>
+                                        </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>splitLate</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>keepTogether</literal>
+                                        </para>
+                                    </listitem>
+
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:table columns="3" headerRows="1">
+  <p:cell>name</p:cell>
+  <p:cell>owner</p:cell>
+  <p:cell>size</p:cell>
+  <ui:repeat value="#{documents}" var="doc">
+    <p:cell>#{doc.name}</p:cell>
+    <p:cell>#{doc.user.name}</p:cell>
+    <p:cell>#{doc.size}</p:cell>
+  </ui:repeat>
+</p:table>]]></programlisting>
+
+
+                            </entry>
+                        </row>
+                        <row>
+				    <entry valign="top"> 
+                                <para>
+                                    <literal>&lt;p:cell&gt;</literal>
+                                </para>
+                            </entry>
+			          <entry valign="top"> 
+                                <para>
+                                    <emphasis>Description</emphasis>
+                                </para>
+                                <para><literal>p:cell</literal> supports the following attributes.</para>
+
+                                <para>
+                                    <emphasis>Attributes</emphasis>
+                                </para>
+
+
+                                <itemizedlist>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>colspan</literal> &#8212; 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. </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>horizontalAlignment</literal> &#8212; The horizontal
+                                            alignment of the cell. (see <xref linkend="itext.alignment"/> for possible
+                                            values)</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para><literal>verticalAlignment</literal> &#8212; The vertical alignment of
+                                            the cell. (see <xref linkend="itext.alignment"/> for possible values)</para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>padding</literal> &#8212; Padding on a given side can also be
+                                            specified using <literal>paddingLeft</literal>,
+                                            <literal>paddingRight</literal>, <literal>paddingTop</literal> and
+                                                <literal>paddingBottom</literal>.</para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>useBorderPadding</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>leading</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>multipliedLeading</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>indent</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>verticalAlignment</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>extraParagraphSpace</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>fixedHeight</literal>
+                                        </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>noWrap</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>minimumHeight</literal>
+                                        </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>followingIndent</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>rightIndent</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>spaceCharRatio</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>runDirection</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>arabicOptions</literal>
+                                        </para>
+                                    </listitem>
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>useAscender</literal>
+                                        </para>
+                                    </listitem>
+
+
+
+                                    <listitem>
+                                        <para>
+                                            <literal>grayFill</literal>
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <literal>rotation</literal>
+                                        </para>
+                                    </listitem>
+
+                                </itemizedlist>
+                                <para>
+                                    <emphasis>Usage</emphasis>
+                                </para>
+                                <programlisting role="XHTML"><![CDATA[<p:cell>...</p:cell>]]></programlisting>
+
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+
+
+        </section>
+
+        <section id="itext.constant">
+            <title>Document Constants</title>
+
+            <para>This section documents some of the constants shared by attributes on multiple tags. </para>
+
+            <section id="itext.colors">
+                <title>Color Values</title>
+                <para>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>. </para>
+
+            </section>
+
+            <section id="itext.alignment">
+                <title>Alignment Values</title>
+                <para> 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>.</para>
+            </section>
+
+        </section>
+
+        <section id="itext.configuration">
+            <title>Configuring iText</title>
+
+            <para>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. </para>
+
+            <para> 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:</para>
+
+            <programlisting role="XML"><![CDATA[<servlet>
+    <servlet-name>Document Store Servlet</servlet-name>
+    <servlet-class>org.jboss.seam.pdf.DocumentStoreServlet</servlet-class>
+</servlet>
+
+<servlet-mapping>
+    <servlet-name>Document Store Servlet</servlet-name>
+    <url-pattern>*.pdf</url-pattern>
+</servlet-mapping>]]></programlisting>
+
+            <para> 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. </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:pdf="http://jboss.com/products/seam/pdf">
+    <pdf:document-store use-extensions="true" />
+</components>]]></programlisting>
+
+            <para> 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. </para>
+            <programlisting role="XML"><![CDATA[<pdf:document-store use-extensions="true" error-page="/pdfMissing.seam" />]]></programlisting>
+        </section>
+    </section>
+
+
+    <section id="itext.charting">
+        <title>Charting</title>
+
+        <para> 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. </para>
+
+        <informaltable id="itext.barchart">
+            <tgroup cols="2">
+		    <!--    <colspec colnum="1" colwidth="1*"/> -->
+		    <!--     <colspec colnum="2" colwidth="3*"/> -->
+
+                <tbody>
+                    <row>
+			         <entry valign="top">
+                            <para>
+                                <literal>&lt;p:barchart&gt;</literal>
+                            </para>
+                        </entry> 
+			    <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>Displays a bar chart.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+                                <listitem>
+                                    <para>
+                                        <literal>borderVisible</literal> &#8212; Controls whether or not a border is
+                                        displayed around the entire chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>borderPaint</literal> &#8212; The color of the border, if visible;
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>borderBackgroundPaint</literal> &#8212; The default background
+                                        color of the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>borderStroke</literal> &#8212; </para>
+                                </listitem>
+
+
+                                <listitem>
+                                    <para>
+                                        <literal>domainAxisLabel</literal> &#8212; The text label for the domain
+                                        axis. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainAxisPaint</literal> &#8212; The color of the domain axis
+                                        label. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlinesVisible</literal>&#8212; Controls whether or not
+                                        gridlines for the domain axis are shown on the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlinePaint</literal>&#8212; The color of the domain
+                                        gridlines, if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlineStroke</literal> &#8212; The stroke style of the
+                                        domain gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>height</literal> &#8212; The height of the chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>is3D</literal> &#8212; A boolean value indicating that the chart
+                                        should be rendered in 3D instead of 2D. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legend</literal> &#8212; A boolean value indicating whether or not
+                                        the chart should include a legend. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legendItemPaint</literal>&#8212; The default color of the text
+                                        labels in the legend. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legendItemBackgoundPaint</literal>&#8212; The background color for
+                                        the legend, if different from the chart background color.</para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>orientation</literal> &#8212; The orientation of the plot, either
+                                            <code>vertical</code> (the default) or <code>horizontal</code>. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotBackgroundPaint</literal>&#8212; The color of the plot
+                                        background.</para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotBackgroundAlpha</literal>&#8212; The alpha (transparency) level
+                                        of the plot background. It should be a number between 0 (completely transparent)
+                                        and 1 (completely opaque). </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotForegroundAlpha</literal>&#8212; The alpha (transparency) level
+                                        of the plot. It should be a number between 0 (completely transparent) and 1
+                                        (completely opaque). </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotOutlinePaint</literal>&#8212; The color of the range gridlines,
+                                        if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>plotOutlineStroke</literal> &#8212; The stroke style of the range
+                                        gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>rangeAxisLabel</literal> &#8212; The text label for the range axis.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeAxisPaint</literal> &#8212; The color of the range axis label.
+                                    </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlinesVisible</literal>&#8212; Controls whether or not
+                                        gridlines for the range axis are shown on the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlinePaint</literal>&#8212; The color of the range
+                                        gridlines, if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlineStroke</literal> &#8212; The stroke style of the range
+                                        gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>title</literal> &#8212; The chart title text. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>titlePaint</literal>&#8212; The color of the chart title text.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>titleBackgroundPaint</literal>&#8212; The background color around
+                                        the chart title.</para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the chart. </para>
+                                </listitem>
+
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:barchart title="Bar Chart" legend="true"
+            width="500" height="500">
+    <p:series key="Last Year">
+        <p:data columnKey="Joe" value="100" />
+        <p:data columnKey="Bob" value="120" />
+    </p:series>        <p:series key="This Year">
+        <p:data columnKey="Joe" value="125" />
+        <p:data columnKey="Bob" value="115" />
+    </p:series>
+</p:barchart>]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			         <entry valign="top">
+                            <para>
+                                <literal>&lt;p:linechart&gt;</literal>
+                            </para>
+                        </entry>
+		    <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>Displays a line chart.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+                                <listitem>
+                                    <para>
+                                        <literal>borderVisible</literal> &#8212; Controls whether or not a border is
+                                        displayed around the entire chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>borderPaint</literal> &#8212; The color of the border, if visible;
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>borderBackgroundPaint</literal> &#8212; The default background
+                                        color of the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>borderStroke</literal> &#8212; </para>
+                                </listitem>
+
+
+                                <listitem>
+                                    <para>
+                                        <literal>domainAxisLabel</literal> &#8212; The text label for the domain
+                                        axis. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainAxisPaint</literal> &#8212; The color of the domain axis
+                                        label. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlinesVisible</literal>&#8212; Controls whether or not
+                                        gridlines for the domain axis are shown on the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlinePaint</literal>&#8212; The color of the domain
+                                        gridlines, if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>domainGridlineStroke</literal> &#8212; The stroke style of the
+                                        domain gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>height</literal> &#8212; The height of the chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the chart. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>is3D</literal> &#8212; A boolean value indicating that the chart
+                                        should be rendered in 3D instead of 2D. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legend</literal> &#8212; A boolean value indicating whether or not
+                                        the chart should include a legend. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legendItemPaint</literal>&#8212; The default color of the text
+                                        labels in the legend. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>legendItemBackgoundPaint</literal>&#8212; The background color for
+                                        the legend, if different from the chart background color.</para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>orientation</literal> &#8212; The orientation of the plot, either
+                                            <code>vertical</code> (the default) or <code>horizontal</code>. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotBackgroundPaint</literal>&#8212; The color of the plot
+                                        background.</para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotBackgroundAlpha</literal>&#8212; The alpha (transparency) level
+                                        of the plot background. It should be a number between 0 (completely transparent)
+                                        and 1 (completely opaque). </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotForegroundAlpha</literal>&#8212; The alpha (transparency) level
+                                        of the plot. It should be a number between 0 (completely transparent) and 1
+                                        (completely opaque). </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>plotOutlinePaint</literal>&#8212; The color of the range gridlines,
+                                        if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>plotOutlineStroke</literal> &#8212; The stroke style of the range
+                                        gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>rangeAxisLabel</literal> &#8212; The text label for the range axis.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeAxisPaint</literal> &#8212; The color of the range axis label.
+                                    </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlinesVisible</literal>&#8212; Controls whether or not
+                                        gridlines for the range axis are shown on the chart. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlinePaint</literal>&#8212; The color of the range
+                                        gridlines, if visible. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rangeGridlineStroke</literal> &#8212; The stroke style of the range
+                                        gridleines, if visible. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>title</literal> &#8212; The chart title text. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>titlePaint</literal>&#8212; The color of the chart title text.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>titleBackgroundPaint</literal>&#8212; The background color around
+                                        the chart title.</para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the chart. </para>
+                                </listitem>
+
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:linechart title="Line Chart"
+            width="500" height="500">
+    <p:series key="Prices">
+        <p:data columnKey="2003" value="7.36" />
+        <p:data columnKey="2004" value="11.50" />
+        <p:data columnKey="2005" value="34.625" />
+        <p:data columnKey="2006" value="76.30" />
+        <p:data columnKey="2007" value="85.05" />
+    </p:series>
+</p:linechart>]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			        <entry valign="top"> 
+                            <para>
+                                <literal>&lt;p:piechart&gt;</literal>
+                            </para>
+                        </entry>
+			   <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>Displays a pie chart.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>title</literal>&#8212; The chart title text. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>label</literal>&#8212; The default label text for pie sections.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>legend</literal>&#8212; A boolean value indicating whether or not
+                                        the chart should include a legend. Default value is true </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>is3D</literal>&#8212;A boolean value indicating that the chart
+                                        should be rendered in 3D instead of 2D. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelLinkMargin</literal>&#8212; The link margin for labels.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelLinkPaint</literal>&#8212; The paint used for the label
+                                        linking lines. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelLinkStroke</literal>&#8212; he stroke used for the label
+                                        linking lines. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>labelLinksVisible</literal>&#8212; A flag that controls whether or
+                                        not the label links are drawn. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelOutlinePaint</literal>&#8212; The paint used to draw the
+                                        outline of the section labels. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the
+                                        outline of the section labels. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow
+                                        for the section labels. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelPaint</literal>&#8212; The color used to draw the section
+                                        labels </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelGap</literal>&#8212; The gap between the labels and the plot
+                                        as a percentage of the plot width. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>labelBackgroundPaint</literal>&#8212; The color used to draw the
+                                        background of the section labels. If this is null, the background is not filled.
+                                    </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>startAngle</literal>&#8212; The starting angle of the first
+                                        section. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>circular</literal>&#8212; 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. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>direction</literal>&#8212; The direction the pie section are drawn.
+                                        One of: <literal>clockwise</literal> or <literal>anticlockwise</literal>. The
+                                        default is <literal>clockwise</literal>. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>sectionOutlinePaint</literal>&#8212; The outline paint for all
+                                        sections. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all
+                                        sections </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>sectionOutlinesVisible</literal>&#8212; Indicates whether an
+                                        outline is drawn for each section in the plot. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>baseSectionOutlinePaint</literal>&#8212; The base section outline
+                                        paint. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>baseSectionPaint</literal>&#8212; The base section paint. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>baseSectionOutlineStroke</literal>&#8212; The base section outline
+                                        stroke. </para>
+                                </listitem>
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:piechart title="Pie Chart" circular="false" direction="anticlockwise" 
+    startAngle="30" labelGap="0.1" labelLinkPaint="red">	
+    <p:series key="Prices"> 
+        <p:data key="2003" columnKey="2003" value="7.36" /> 
+        <p:data key="2004" columnKey="2004" value="11.50" /> 
+        <p:data key="2005" columnKey="2005" value="34.625" /> 
+        <p:data key="2006" columnKey="2006" value="76.30" /> 
+        <p:data key="2007" columnKey="2007" value="85.05" /> 
+    </p:series> 
+</p:piechart>]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			          <entry valign="top">
+                            <para>
+                                <literal>&lt;p:series&gt;</literal>
+                            </para>
+                        </entry>
+		   <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>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. </para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>key</literal> &#8212; The series name. </para>
+                                </listitem>
+                                <!--
+                                <listitem>
+                                    <para>
+                                        <literal>seriesFillPaint</literal>  &#8212; 
+                                    </para>
+                                </listitem>
+                                -->
+                                <listitem>
+                                    <para>
+                                        <literal>seriesPaint</literal> &#8212; The color of each item in the series
+                                    </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>seriesOutlinePaint</literal> &#8212; The outline color for each
+                                        item in the series. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each
+                                        item in the series. </para>
+                                </listitem>
+                                <!--
+                                <listitem>
+                                    <para>
+                                        <literal>seriesStroke</literal>
+                                    </para>
+                                </listitem>
+                                -->
+                                <listitem>
+                                    <para>
+                                        <literal>seriesVisible</literal> &#8212; A boolean indicating if the series
+                                        should be displayed. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>seriesVisibleInLegend</literal> &#8212; A boolean indiciating if
+                                        the series should be listed in the legend. </para>
+                                </listitem>
+
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:series key="data1">
+    <ui:repeat value="#{data.pieData1}" var="item">
+        <p:data columnKey="#{item.name}" value="#{item.value}" />
+    </ui:repeat>
+</p:series>]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			         <entry valign="top"> 
+                            <para>
+                                <literal>&lt;p:data&gt;</literal>
+                            </para>
+                        </entry>
+			     <entry valign="top">
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>The data tag describes each data point to be displayed in the graph.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+                                <listitem>
+                                    <para>
+                                        <literal>key</literal> &#8212; The name of the data item. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>series</literal> &#8212; The series name, when not embedded inside
+                                        a <code>&lt;p:series&gt;</code>. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>value</literal> &#8212; The numeric data value. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>explodedPercent</literal> &#8212; For pie charts, indicates how
+                                        exploded a from the pie a piece is. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>sectionOutlinePaint</literal> &#8212; For bar charts, the color of
+                                        the section outline.</para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke
+                                        type for the section outline.</para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>sectionPaint</literal> &#8212; For bar charts, the color of the
+                                        section.</para>
+                                </listitem>
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+
+
+
+                            <programlisting role="XHTML"><![CDATA[<p:data key="foo" value="20" sectionPaint="#111111" 
+        explodedPercent=".2" />
+<p:data key="bar" value="30" sectionPaint="#333333" />
+<p:data key="baz" value="40" sectionPaint="#555555" 
+        sectionOutlineStroke="my-dot-style" />]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			            <entry valign="top">
+                            <para>
+                                <literal>&lt;p:color&gt;</literal>
+                            </para>
+                        </entry>
+			    <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>The color component declares a color or gradient than can be referenced when drawing
+                                filled shapes. </para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>color</literal> &#8212; The color value. For gradient colors, this
+                                        the starting color. <xref linkend="itext.colors"/>
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>color2</literal> &#8212; For gradient colors, this is the color
+                                        that ends the gradient. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>point</literal> &#8212; The co-ordinates where the gradient color
+                                        begins. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>point2</literal> &#8212; The co-ordinates where the gradient color
+                                        ends. </para>
+                                </listitem>
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:color id="foo" color="#0ff00f"/>
+<p:color id="bar" color="#ff00ff" color2="#00ff00" 
+                  point="50 50" point2="300 300"/>]]></programlisting>
+
+                        </entry>
+                    </row>
+                    <row>
+			        <entry valign="top"> 
+                            <para>
+                                <literal>&lt;p:stroke&gt;</literal>
+                            </para>
+                        </entry>
+			   <entry valign="top"> 
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>Describes a stroke used to draw lines in a chart.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the stroke. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para><literal>cap</literal> &#8212; The line cap type. Valid values are
+                                            <literal>butt</literal>, <literal>round</literal> and
+                                        <literal>square</literal></para>
+                                </listitem>
+
+                                <listitem>
+                                    <para><literal>join</literal> &#8212; The line join type. Valid values are
+                                            <literal>miter</literal>, <literal>round</literal> and
+                                        <literal>bevel</literal></para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>miterLimit</literal> &#8212; For miter joins, this value is the
+                                        limit of the size of the join. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>dash</literal> &#8212; 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. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>dashPhase</literal> &#8212; The dash phase indicates the offset
+                                        into the dash pattern that the the line should be drawn with. </para>
+                                </listitem>
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:stroke id="dot2" width="2" cap="round" join="bevel" dash="2 3" />]]></programlisting>
+
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+
+
+    </section>
+
+    <section id="itext.barcodes">
+        <title>Bar codes</title>
+        <para>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. 
+        </para>
+
+        <informaltable id="itext.barcode">
+            <tgroup cols="2">
+		    <!--     <colspec colnum="1" colwidth="1*"/> -->
+		    <!--     <colspec colnum="2" colwidth="3*"/> -->
+
+                <tbody>
+                    <row>
+			       <entry valign="top"> 
+                            <para>
+                                <literal>&lt;p:barCode&gt;</literal>
+                            </para>
+                        </entry>
+		    <entry valign="top">
+                            <para>
+                                <emphasis>Description</emphasis>
+                            </para>
+                            <para>Displays a barcode image.</para>
+
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>type</literal> &#8212; 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>. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>code</literal>&#8212; The value to be encoded by the barcode.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>xpos</literal>&#8212; For PDFs, the absolute y position of the
+                                        barcode on the page. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>ypos</literal>&#8212; For PDFs, the absolute y position of the
+                                        barcode on the page. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>rotDegrees</literal> &#8212; For PDFs, the rotation factor of the
+                                        barcode in degrees. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>barHeight</literal> &#8212; The height of the bars in the barCode
+                                    </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>minBarWidth</literal> &#8212; The minimum bar width. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>barMultiplier</literal> &#8212; The bar multiplier for wide bars or
+                                        the distance between bars for <literal>POSTNET</literal> and
+                                        <literal>PLANET</literal> code. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>barColor</literal> &#8212; The color to draw the bars. </para>
+                                </listitem>
+
+                                <listitem>
+                                    <para>
+                                        <literal>textColor</literal> &#8212; The color of any text on the barcode.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>textSize</literal> &#8212; The size of the barcode text, if any.
+                                    </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>altText</literal> &#8212; The <literal>alt</literal> text for HTML image links.
+                                    </para>
+                                </listitem>                                                                
+
+
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:barCode type="code128" 
+           barHeight="80" 
+           textSize="20" 
+           code="(10)45566(17)040301" 
+           codeType="code128_ucc" 
+           altText="My BarCode" />]]></programlisting>
+
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+    </section>
+
+
+    <section id="itext.swingcomponents">
+        <title>Rendering Swing/AWT components</title>
+        <para>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.
+        </para>
+
+        <informaltable id="itext.swing">
+            <tgroup cols="2">
+        <!--        <colspec colnum="1" colwidth="1*"/>
+                <colspec colnum="2" colwidth="3*"/> -->
+
+                <tbody>
+                    <row>
+                      <entry valign="top"> 
+                            <para>
+                                <literal>&lt;p:swing&gt;</literal>
+                            </para>
+                        </entry>
+                       <entry valign="top">
+                            <para>
+                                <emphasis>Description</emphasis>  
+                            </para>
+                            
+                            <para>Renders a Swing component into a PDF document.</para>
+                            <para>
+                                <emphasis>Attributes</emphasis>
+                            </para>
+
+                            <itemizedlist>
+
+                                <listitem>
+                                    <para>
+                                        <literal>width</literal> &#8212; The width of the component to be rendered. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>height</literal> &#8212; ..The height of the component to be rendered. </para>
+                                </listitem>
+                                <listitem>
+                                    <para>
+                                        <literal>component</literal> &#8212; An expression whose value is a Swing or AWT component. </para>
+                                </listitem>                                
+
+                            </itemizedlist>
+                            <para>
+                                <emphasis>Usage</emphasis>
+                            </para>
+                            <programlisting role="XHTML"><![CDATA[<p:swing width="310" height="120" component="#{aButton}" />]]></programlisting>
+
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </informaltable>
+    </section>
+
+
+    <section id="itext.links">
+        <title>Further documentation</title>
+
+        <para>For further information on iText, see:</para>
+        <para>
+            <itemizedlist>
+                <listitem>
+                    <para>
+                        <ulink url="http://www.lowagie.com/iText/">iText Home Page</ulink>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <ulink url="http://www.manning.com/lowagie/">iText in Action</ulink>
+                    </para>
+                </listitem>
+            </itemizedlist>
+
+        </para>
+    </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Itext.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jbpm.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jbpm.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jbpm.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,852 @@
+<chapter id="jbpm">
+    <title>Pageflows and business processes</title>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+        Seam applications use jBPM for two different problems:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+        <listitem>
+        <para>
+            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.
+        </para>
+        </listitem>
+    </itemizedlist>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+        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.
+    </para>
+    
+    <section>
+        <title>Pageflow in Seam</title>
+        <para>
+            There are two ways to define pageflow in Seam:
+        </para>
+        
+	    <itemizedlist>
+	        <listitem>
+	        <para>
+	            Using JSF or Seam navigation rules - the <emphasis>stateless navigation 
+	            model</emphasis>
+	        </para>
+	        </listitem>
+	        <listitem>
+	        <para>
+	            Using jPDL - the <emphasis>stateful navigation model</emphasis>
+	        </para>
+	        </listitem>
+	    </itemizedlist>
+    
+        <para>
+            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!
+        </para>
+        
+        <section>
+            <title>The two navigation models</title>
+        
+        <para>
+            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. 
+        </para>
+        
+        <para>
+            Here is an example page flow definition using JSF navigation 
+            rules:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<navigation-rule>
+    <from-view-id>/numberGuess.jsp</from-view-id>
+        
+    <navigation-case>
+        <from-outcome>guess</from-outcome>
+        <to-view-id>/numberGuess.jsp</to-view-id>
+        <redirect/>
+    </navigation-case>
+
+    <navigation-case>
+        <from-outcome>win</from-outcome>
+        <to-view-id>/win.jsp</to-view-id>
+        <redirect/>
+    </navigation-case>
+        
+    <navigation-case>
+        <from-outcome>lose</from-outcome>
+        <to-view-id>/lose.jsp</to-view-id>
+        <redirect/>
+    </navigation-case>
+
+</navigation-rule>]]></programlisting>
+
+        <para>
+            Here is the same example page flow definition using Seam navigation 
+            rules:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<page view-id="/numberGuess.jsp">
+        
+    <navigation>
+        <rule if-outcome="guess">
+            <redirect view-id="/numberGuess.jsp"/>
+        </rule>
+        <rule if-outcome="win">
+            <redirect view-id="/win.jsp"/>
+        </rule>
+        <rule if-outcome="lose">
+            <redirect view-id="/lose.jsp"/>
+        </rule>
+    </navigation>
+
+</page>]]></programlisting>
+
+        <para>
+            If you find navigation rules overly verbose, you can return view ids
+            directly from your action listener methods:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[public String guess() {
+    if (guess==randomNumber) return "/win.jsp";
+    if (++guessCount==maxGuesses) return "/lose.jsp";
+    return null;
+}]]></programlisting>
+
+        <para>
+            Note that this results in a redirect. You can even specify parameters 
+            to be used in the redirect:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[public String search() {
+    return "/searchResults.jsp?searchPattern=#{searchAction.searchPattern}";
+}]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            Here is an example page flow definition using jPDL:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pageflow-definition name="numberGuess">
+    
+   <start-page name="displayGuess" view-id="/numberGuess.jsp">
+      <redirect/>
+      <transition name="guess" to="evaluateGuess">
+      	<action expression="#{numberGuess.guess}" />
+      </transition>
+   </start-page>
+   
+   <decision name="evaluateGuess" expression="#{numberGuess.correctGuess}">
+      <transition name="true" to="win"/>
+      <transition name="false" to="evaluateRemainingGuesses"/>
+   </decision>
+   
+   <decision name="evaluateRemainingGuesses" expression="#{numberGuess.lastGuess}">
+      <transition name="true" to="lose"/>
+      <transition name="false" to="displayGuess"/>
+   </decision>
+   
+   <page name="win" view-id="/win.jsp">
+      <redirect/>
+      <end-conversation />
+   </page>
+   
+   <page name="lose" view-id="/lose.jsp">
+      <redirect/>
+      <end-conversation />
+   </page>
+   
+</pageflow-definition>]]></programlisting>
+
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/plugin-jbpm-numguess.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/plugin-jbpm-numguess.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+        
+        <para>
+            There are two things we notice immediately here:
+        </para>
+	    
+	    <itemizedlist>
+	        <listitem>
+	        <para>
+	            The JSF/Seam navigation rules are <emphasis>much</emphasis> simpler.
+	            (However, this obscures the fact that the underlying Java code
+	            is more complex.)
+	        </para>
+	        </listitem>
+	        <listitem>
+	        <para>
+	            The jPDL makes the user interaction immediately understandable,
+	            without us needing to even look at the JSP or Java code.
+	        </para>
+	        </listitem>
+	    </itemizedlist>
+	    
+	    <para>
+	        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.
+	    </para>
+	    
+	    <para>
+	        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.
+	    </para>
+	    
+	    <para>
+	        The biggest contrast between the two models is the back-button
+	        behavior.
+	    </para>
+	    
+	    </section>
+	    
+	    <section>
+	        <title>Seam and the back button</title>
+	    
+	    <para>
+	        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.
+	    </para>
+	    
+	    <para>
+	        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:
+	    </para>
+	    
+	    <programlisting role="XML"><![CDATA[<page view-id="/checkout.xhtml" 
+        no-conversation-view-id="/main.xhtml"/>]]></programlisting>
+	    
+	    <para>
+	        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>.
+	    </para>
+	    
+        <programlisting role="XML"><![CDATA[<page name="checkout" 
+        view-id="/checkout.xhtml" 
+        back="enabled">
+    <redirect/>
+    <transition to="checkout"/>
+    <transition name="complete" to="complete"/>
+</page>]]></programlisting>
+
+        <para>
+            This allows backbuttoning <emphasis>from</emphasis> the
+            <literal>checkout</literal> state to <emphasis>any previous
+            state!</emphasis>
+        </para>
+        
+        <para>
+            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:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<page name="checkout" 
+        view-id="/checkout.xhtml" 
+        back="enabled" 
+        no-conversation-view-id="/main.xhtml">
+    <redirect/>
+    <transition to="checkout"/>
+    <transition name="complete" to="complete"/>
+</page>]]></programlisting>
+
+
+    	    <para>
+	        In practice, both navigation models have their place, and you'll 
+	        quickly learn to recognize when to prefer one model over the other.
+	        </para>
+
+        </section>
+    </section>
+    
+    <section>
+        <title>Using jPDL pageflows</title>
+        
+        <section>
+            <title>Installing pageflows</title>
+        
+        <para>
+            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>.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<bpm:jbpm>
+    <bpm:pageflow-definitions>
+        <value>pageflow.jpdl.xml</value>
+    </bpm:pageflow-definitions>
+</bpm:jbpm>]]></programlisting>
+
+        <para>
+            The first line installs jBPM, the second points to a jPDL-based
+            pageflow definition.
+        </para>
+        
+        </section>
+        
+        <section>
+            <title>Starting pageflows</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Begin(pageflow="numberguess")
+public void begin() { ... }]]></programlisting>
+
+		<para>Alternatively we can start a pageflow using pages.xml:</para>
+		
+		<programlisting role="XML"><![CDATA[<page>
+        <begin-conversation pageflow="numberguess"/>
+    </page>]]></programlisting>
+        
+        <para>
+            If we are beginning the pageflow during the <literal>RENDER_RESPONSE</literal>
+            phase&#8212;during a <literal>@Factory</literal> or <literal>@Create</literal>
+            method, for example&#8212;we consider ourselves to be already at the page being 
+            rendered, and use  a <literal>&lt;start-page&gt;</literal> node as the first node 
+            in the pageflow, as in the example above.
+        </para>
+        
+        <para>
+            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>&lt;start-state&gt;</literal> as
+            the first node in the pageflow, and declare a transition for each possible
+            outcome:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<pageflow-definition name="viewEditDocument">
+
+    <start-state name="start">
+        <transition name="documentFound" to="displayDocument"/>
+        <transition name="documentNotFound" to="notFound"/>
+    </start-state>
+    
+    <page name="displayDocument" view-id="/document.jsp">
+        <transition name="edit" to="editDocument"/>
+        <transition name="done" to="main"/>
+    </page>
+    
+    ...
+    
+    <page name="notFound" view-id="/404.jsp">
+        <end-conversation/>
+    </page>
+    
+</pageflow-definition>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Page nodes and transitions</title>
+
+        <para>
+            Each <literal>&lt;page&gt;</literal> node represents a state where
+            the system is waiting for user input:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<page name="displayGuess" view-id="/numberGuess.jsp">
+    <redirect/>
+    <transition name="guess" to="evaluateGuess">
+        <action expression="#{numberGuess.guess}" />
+    </transition>
+</page>]]></programlisting>
+        
+        <para>
+            The <literal>view-id</literal> is the JSF view id. The <literal>&lt;redirect/&gt;</literal>
+            element has the same effect as <literal>&lt;redirect/&gt;</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.)
+        </para>
+        
+        <para>
+            The transition name is the name of a JSF outcome triggered by clicking
+            a command button or command link in <literal>numberGuess.jsp</literal>. 
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:commandButton type="submit" value="Guess" action="guess"/>]]></programlisting>
+        
+        <para>
+            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.)
+        </para>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:commandButton type="submit" value="Guess"/>]]></programlisting>
+        
+        <para>
+            Would fire the following un-named transition:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<page name="displayGuess" view-id="/numberGuess.jsp">
+    <redirect/>
+    <transition to="evaluateGuess">
+        <action expression="#{numberGuess.guess}" />
+    </transition>
+</page>]]></programlisting>
+
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:commandButton type="submit" value="Guess" action="#{numberGuess.guess}"/>]]></programlisting>
+        
+<programlisting role="XML"><![CDATA[<page name="displayGuess" view-id="/numberGuess.jsp">
+    <transition name="correctGuess" to="win"/>
+    <transition name="incorrectGuess" to="evaluateGuess"/>
+</page>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        </section>
+        
+        <section>
+            <title>Controlling the flow</title>
+
+        <para>
+            Usually, we don't need the more powerful features of jPDL when defining pageflows. 
+            We do need the <literal>&lt;decision&gt;</literal> node, however:
+        </para>
+        
+<programlisting role="XML"><![CDATA[<decision name="evaluateGuess" expression="#{numberGuess.correctGuess}">
+    <transition name="true" to="win"/>
+    <transition name="false" to="evaluateRemainingGuesses"/>
+</decision>]]></programlisting>
+
+        <para>
+            A decision is made by evaluating a JSF EL expression in the Seam contexts.
+        </para>
+        
+        </section>
+        
+        <section>
+            <title>Ending the flow</title>
+   
+        <para>
+            We end the conversation using <literal>&lt;end-conversation&gt;</literal>
+            or <literal>@End</literal>. (In fact, for readability, use of 
+            <emphasis>both</emphasis> is encouraged.)
+        </para>
+        
+<programlisting role="XML"><![CDATA[<page name="win" view-id="/win.jsp">
+    <redirect/>
+    <end-conversation/>
+</page>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+<programlisting role="XML"><![CDATA[<page name="win" view-id="/win.jsp">
+    <redirect/>
+    <end-task transition="success"/>
+</page>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Pageflow composition</title>
+            <para>
+                It is possible to compose pageflows and have one pageflow pause 
+                pause while another pageflow executes. The <literal>&lt;process-state&gt;</literal>
+                node pauses the outer pageflow, and begins execution of a named 
+                pageflow:
+            </para>
+            
+<programlisting role="XML"><![CDATA[<process-state name="cheat">
+    <sub-process name="cheat"/>
+    <transition to="displayGuess"/>
+</process-state>]]></programlisting>
+
+            <para>
+                The inner flow begins executing at a <literal>&lt;start-state&gt;</literal>
+                node. When it reaches an <literal>&lt;end-state&gt;</literal> node, 
+                execution of the inner flow ends, and execution of the outer flow
+                resumes with the transition defined by the <literal>&lt;process-state&gt;</literal>
+                element.
+            </para>
+            
+        </section>
+
+    </section>
+    
+    <section>
+        <title>Business process management in Seam</title>
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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>&lt;page&gt;</literal> nodes,
+            we have <literal>&lt;task-node&gt;</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.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<process-definition name="todo">
+   
+   <start-state name="start">
+      <transition to="todo"/>
+   </start-state>
+   
+   <task-node name="todo">
+      <task name="todo" description="#{todoList.description}">
+         <assignment actor-id="#{actor.id}"/>
+      </task>
+      <transition to="done"/>
+   </task-node>
+   
+   <end-state name="done"/>
+   
+</process-definition>]]></programlisting>
+
+        
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/plugin-jbpm-todo.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/plugin-jbpm-todo.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+        
+        <para>
+            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>&lt;task&gt;</literal> in a business process
+            corresponds to a whole pageflow 
+            <literal>&lt;pageflow-definition&gt;</literal>
+        </para>
+        </section>
+    
+        <section>
+            <title>Using jPDL business process definitions</title>
+        
+        <section>
+            <title>Installing process definitions</title>
+        
+        <para>
+            We need to install jBPM, and tell it where to find the
+            business process definitions:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<bpm:jbpm>
+    <bpm:process-definitions>
+        <value>todo.jpdl.xml</value>
+    </bpm:process-definitions>
+</bpm:jbpm>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+
+        </section>
+        
+        <section>
+            <title>Initializing actor ids</title>
+        
+        <para>
+            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>:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In Actor actor;
+
+public String login() {
+    ...
+    actor.setId( user.getUserName() );
+    actor.getGroupActorIds().addAll( user.getGroupNames() );
+    ...
+}]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Initiating a business process</title>
+        
+        <para>
+            To initiate a business process instance, we use the 
+            <literal>@CreateProcess</literal> annotation:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@CreateProcess(definition="todo")
+public void createTodo() { ... }]]></programlisting>
+
+        <para>Alternatively we can initiate a business process using pages.xml:</para>
+        
+        <programlisting role="XML"><![CDATA[<page>
+    <create-process definition="todo" />
+</page>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Task assignment</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<task name="todo" description="#{todoList.description}">
+    <assignment actor-id="#{actor.id}"/>
+</task>]]></programlisting>
+
+        <para>
+            In this case, we have simply assigned the task to the current user. 
+            We can also assign tasks to a pool:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<task name="todo" description="#{todoList.description}">
+    <assignment pooled-actors="employees"/>
+</task>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Task lists</title>
+
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:dataTable value="#{pooledTaskInstanceList}" var="task">
+    <h:column>
+        <f:facet name="header">Description</f:facet>
+        <h:outputText value="#{task.description}"/>
+    </h:column>
+    <h:column>
+        <s:link action="#{pooledTask.assignToCurrentActor}" value="Assign" taskInstance="#{task}"/>
+    </h:column>            	
+</h:dataTable>]]></programlisting>
+
+        <para>
+            Note that instead of <literal>&lt;s:link&gt;</literal> we could have used
+            a plain JSF <literal>&lt;h:commandLink&gt;</literal>:
+        </para>
+
+        <programlisting role="XHTML"><![CDATA[<h:commandLink action="#{pooledTask.assignToCurrentActor}"> 
+    <f:param name="taskId" value="#{task.id}"/>
+</h:commandLink>]]></programlisting>
+
+        <para>
+            The <literal>pooledTask</literal> component is a built-in component that
+            simply assigns the task to the current user.
+        </para>
+        
+        <para>
+            The <literal>taskInstanceListForType</literal> component includes tasks of 
+            a particular type that are assigned to the current user:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<h:dataTable value="#{taskInstanceListForType['todo']}" var="task">
+    <h:column>
+        <f:facet name="header">Description</f:facet>
+        <h:outputText value="#{task.description}"/>
+    </h:column>
+    <h:column>
+        <s:link action="#{todoList.start}" value="Start Work" taskInstance="#{task}"/>
+    </h:column>            	
+</h:dataTable>]]></programlisting>
+
+        </section>
+        
+        <section>
+            <title>Performing a task</title>
+        
+        <para>
+            To begin work on a task, we use either <literal>@StartTask</literal>
+            or <literal>@BeginTask</literal> on the listener method:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@StartTask
+public String start() { ... }]]></programlisting>
+
+        <para>Alternatively we can begin work on a task using pages.xml:</para>
+        
+        <programlisting role="XML"><![CDATA[<page>
+    <start-task />
+</page>]]></programlisting>
+        
+        <para>    
+            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.
+        </para>
+        
+        <para>
+            If we end the conversation using <literal>@EndTask</literal>, Seam
+            will signal the completion of the task:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@EndTask(transition="completed")
+public String completed() { ... }]]></programlisting>
+
+        <para>Alternatively we can use pages.xml:</para>
+        
+        <programlisting role="XML"><![CDATA[<page>
+    <end-task transition="completed" />
+</page>]]></programlisting>
+
+        <para>
+            You can also use EL to specify the transition in pages.xml.
+        </para>
+
+        <para>
+            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.)
+        </para>                
+        
+            <para>
+            Please refer to the jBPM documentation for a more thorough overview of 
+            the sophisticated features that jBPM provides for managing complex
+            business processes.
+            </para>
+
+        </section>
+    </section>
+    
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jbpm.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jms.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jms.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jms.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,461 @@
+<chapter id="jms">
+    <title>Asynchronicity and messaging</title>
+    <para>
+        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.
+    </para>
+    
+    <para>
+        But for many usecases, JMS is overkill. Seam layers a simple asynchronous method and event
+        facility over your choice of <emphasis>dispatchers</emphasis>:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+            <para>
+                <literal>java.util.concurrent.ScheduledThreadPoolExecutor</literal> (by default)
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                the EJB timer service (for EJB 3.0 environments)
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Quartz
+            </para>
+        </listitem>
+    </itemizedlist>
+            
+    <sect1>
+        <title>Asynchronicity</title>
+
+        <para>
+            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>:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<async:timer-service-dispatcher/>]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<async:quartz-dispatcher/>]]></programlisting>
+            
+        <para>
+            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>.
+        </para>
+        
+        <sect2>
+        <title>Asynchronous methods</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            For EJB components, we annotate the local interface to specify that a method is processed
+            asynchronously.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Local
+public interface PaymentHandler
+{
+    @Asynchronous
+    public void processPayment(Payment payment);
+}]]></programlisting>
+
+        <para>
+            (For JavaBean components we can annotate the component implementation class if we like.)
+        </para>
+        
+        <para>
+            The use of asynchronicity is transparent to the bean class:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("paymentHandler")
+public class PaymentHandlerBean implements PaymentHandler
+{
+    public void processPayment(Payment payment)
+    {
+        //do some work!
+    }
+}]]></programlisting>
+        
+        <para>
+            And also transparent to the client:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("paymentAction")
+public class CreatePaymentAction
+{
+    @In(create=true) PaymentHandler paymentHandler;
+    @In Bill bill;
+    
+    public String pay()
+    {
+        paymentHandler.processPayment( new Payment(bill) );
+        return "success";
+    }
+}]]></programlisting>
+
+        <para>
+            The asynchronous method is processed in a completely new event context and does
+            not have access to the session or conversation context state of the caller. However,
+            the business process context <emphasis>is</emphasis> propagated.
+        </para>
+        
+        <para>
+            Asynchronous method calls may be scheduled for later execution using the
+            <literal>@Duration</literal>, <literal>@Expiration</literal> and
+            <literal>@IntervalDuration</literal> annotations.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@Local
+public interface PaymentHandler
+{
+    @Asynchronous
+    public void processScheduledPayment(Payment payment, @Expiration Date date);
+
+    @Asynchronous
+    public void processRecurringPayment(Payment payment, 
+                                        @Expiration Date date, 
+                                        @IntervalDuration Long interval)'
+}]]></programlisting>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("paymentAction")
+public class CreatePaymentAction
+{
+    @In(create=true) PaymentHandler paymentHandler;
+    @In Bill bill;
+    
+    public String schedulePayment()
+    {
+        paymentHandler.processScheduledPayment( new Payment(bill), bill.getDueDate() );
+        return "success";
+    }
+
+    public String scheduleRecurringPayment()
+    {
+        paymentHandler.processRecurringPayment( new Payment(bill), bill.getDueDate(), 
+                                                ONE_MONTH );
+        return "success";
+    }
+}]]></programlisting>
+
+        <para>
+            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.
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Local
+public interface PaymentHandler
+{
+    @Asynchronous
+    public Timer processScheduledPayment(Payment payment, @Expiration Date date);
+}]]></programlisting>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("paymentHandler")
+public class PaymentHandlerBean implements PaymentHandler
+{
+    @In Timer timer;
+    
+    public Timer processScheduledPayment(Payment payment, @Expiration Date date)
+    {
+        //do some work!
+        
+        return timer; //note that return value is completely ignored
+    }
+
+}]]></programlisting>
+        
+        <programlisting role="JAVA"><![CDATA[@Stateful
+ at Name("paymentAction")
+public class CreatePaymentAction
+{
+    @In(create=true) PaymentHandler paymentHandler;
+    @In Bill bill;
+    
+    public String schedulePayment()
+    {
+        Timer timer = paymentHandler.processScheduledPayment( new Payment(bill), 
+                                                              bill.getDueDate() );
+        return "success";
+    }
+}]]></programlisting>
+
+        <para>
+            Asynchronous methods cannot return any other value to the caller.
+        </para>
+
+        </sect2>
+        
+        <sect2>
+        <title>Asynchronous methods with the Quartz Dispatcher</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>The <literal>@FinalExpiration</literal> annotation specifies an end date for the recurring task.</para>
+        
+        <programlisting role="JAVA"><![CDATA[
+    // Defines the method in the "processor" component
+    @Asynchronous
+    public QuartzTriggerHandle schedulePayment(@Expiration Date when, 
+                                 @IntervalDuration Long interval,
+                                 @FinalExpiration Date endDate, 
+                                 Payment payment) 
+    { 
+        // do the repeating or long running task until endDate
+    }
+    
+    ... ...
+    
+    // Schedule the task in the business logic processing code
+    // Starts now, repeats every hour, and ends on May 10th, 2010
+    Calendar cal = Calendar.getInstance ();
+    cal.set (2010, Calendar.MAY, 10);
+    processor.schedulePayment(new Date(), 60*60*1000, cal.getTime(), payment);
+]]></programlisting>
+
+        <para>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.</para>
+        
+        <programlisting role="JAVA"><![CDATA[QuartzTriggerHandle handle =
+         processor.schedulePayment(payment.getPaymentDate(), 
+                                   payment.getPaymentCron(), 
+                                   payment);
+        payment.setQuartzTriggerHandle( handle );
+        // Save payment to DB
+        
+        // later ...
+        
+        // Retrieve payment from DB
+        // Cancel the remaining scheduled tasks
+        payment.getQuartzTriggerHandle().cancel();
+]]></programlisting>
+            
+        <para>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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[
+    // Define the method
+    @Asynchronous
+    public QuartzTriggerHandle schedulePayment(@Expiration Date when, 
+                                 @IntervalCron String cron, 
+                                 Payment payment) 
+    { 
+        // do the repeating or long running task
+    }
+    
+    ... ...
+    
+    // Schedule the task in the business logic processing code
+    QuartzTriggerHandle handle = 
+      processor.schedulePayment(new Date(), "0 10,44 14 ? 3 WED", payment);
+]]></programlisting>
+
+        <para>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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[
+    // Define the method
+    @Asynchronous
+    public QuartzTriggerHandle schedulePayment(@Expiration Date when, 
+                                 @IntervalBusinessDay NthBusinessDay nth, 
+                                 Payment payment) 
+    { 
+        // do the repeating or long running task
+    }
+    
+    ... ...
+    
+    // Schedule the task in the business logic processing code
+    QuartzTriggerHandle handle = 
+      processor.schedulePayment(new Date(), 
+          new NthBusinessDay(2, "14:00", WEEKLY), payment);
+]]></programlisting>
+
+        <para>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.</para>
+        
+        <programlisting role="JAVA"><![CDATA[
+public class NthBusinessDay implements Serializable
+{
+      int n;
+      String fireAtTime;
+      List <Date> additionalHolidays;
+      BusinessDayIntervalType interval;
+      boolean excludeWeekends;
+      boolean excludeUsFederalHolidays;
+
+      public enum BusinessDayIntervalType { WEEKLY, MONTHLY, YEARLY }
+
+      public NthBusinessDay ()
+      {
+        n = 1;
+        fireAtTime = "12:00";
+        additionalHolidays = new ArrayList <Date> ();
+        interval = BusinessDayIntervalType.WEEKLY;
+        excludeWeekends = true;
+        excludeUsFederalHolidays = true;
+      }     
+      ... ...
+}
+]]></programlisting>
+
+        <para>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.</para>
+        
+        </sect2>
+        
+        <sect2>
+            <title>Asynchronous events</title>
+            <para>
+                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.
+            </para>
+        </sect2>
+
+    </sect1>
+    
+    <sect1>
+    <title>Messaging in Seam</title>
+    
+    <para>
+        Seam makes it easy to send and receive JMS messages to and from
+        Seam components.
+    </para>
+    
+    <sect2>
+        <title>Configuration</title>
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<jms:managed-topic-publisher name="stockTickerPublisher" 
+                             auto-create="true" 
+                             topic-jndi-name="topic/stockTickerTopic"/>
+
+<jms:managed-queue-sender name="paymentQueueSender" 
+                          auto-create="true" 
+                          queue-jndi-name="queue/paymentQueue"/>]]></programlisting>
+
+    </sect2>
+
+    <sect2>
+        <title>Sending messages</title>
+        <para>
+            Now, you can inject a JMS <literal>TopicPublisher</literal> and
+            <literal>TopicSession</literal> into any component:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In 
+private TopicPublisher stockTickerPublisher;   
+ at In 
+private TopicSession topicSession;
+
+public void publish(StockPrice price) {
+      try
+      {
+         stockTickerPublisher.publish( topicSession.createObjectMessage(price) );
+      } 
+      catch (Exception ex)
+      {
+         throw new RuntimeException(ex);
+      } 
+}]]></programlisting>
+
+        <para>Or, for working with a queue:</para>
+
+        <programlisting role="JAVA"><![CDATA[@In
+private QueueSender paymentQueueSender;   
+ at In
+private QueueSession queueSession;
+
+public void publish(Payment payment) {
+      try
+      {
+         paymentQueueSender.send( queueSession.createObjectMessage(payment) );
+      } 
+      catch (Exception ex)
+      {
+         throw new RuntimeException(ex);
+      } 
+}]]></programlisting>
+
+    </sect2>
+    
+    <sect2>
+        <title>Receiving messages using a message-driven bean</title>
+        <para>
+            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.
+        </para>
+    </sect2>
+    
+    <sect2>
+        <title>Receiving messages in the client</title>
+        <para>
+            Seam Remoting lets you subscribe to a JMS topic from client-side JavaScript. This is
+            described in <xref linkend="remoting"/>.
+        </para>
+    </sect2>
+    
+    </sect1>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Jms.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Mail.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Mail.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Mail.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,819 @@
+<chapter id="mail">
+  <title>Email</title>
+  <para>
+    Seam now includes an optional components for templating and sending emails.
+  </para>
+
+  <para>
+    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. 
+  </para>
+
+  <para>
+    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. 
+  </para>
+  
+  <para>
+    You can also test your mail's using Seam's integration testing environment.
+    See <xref linkend="testing.mail" />.
+  </para>
+    
+  <section>
+    <title>Creating a message</title>
+    	
+    <para>
+      You don't need to learn a whole new templating language to use Seam Mail 
+      &#8212; an email is just facelet!
+    </para>
+    	
+    <programlisting role="XHTML"><![CDATA[<m:message xmlns="http://www.w3.org/1999/xhtml"
+    xmlns:m="http://jboss.com/products/seam/mail"
+    xmlns:h="http://java.sun.com/jsf/html">
+  
+    <m:from name="Peter" address="peter at example.com" />
+    <m:to name="#{person.firstname} #{person.lastname}">#{person.address}</m:to>
+    <m:subject>Try out Seam!</m:subject>
+    
+    <m:body>
+        <p><h:outputText value="Dear #{person.firstname}" />,</p>
+        <p>You can try out Seam by visiting 
+        <a href="http://labs.jboss.com/jbossseam">http://labs.jboss.com/jbossseam</a>.</p>
+        <p>Regards,</p>
+        <p>Pete</p>
+    </m:body>
+    
+</m:message>]]></programlisting>
+    	
+    <para>
+      The <literal>&lt;m:message&gt;</literal> tag wraps the whole message, 
+      and tells Seam to start rendering an email.  Inside the <literal>&lt;m:message&gt;</literal>
+      tag we use an <literal>&lt;m:from&gt;</literal> tag to set who the 
+      message is from, a <literal>&lt;m:to&gt;</literal> tag to	specify a 
+      sender (notice how we use EL as we would in a normal facelet), and a 
+      <literal>&lt;m:subject&gt;</literal> tag.
+    </para>
+    	
+    <para>
+      The <literal>&lt;m:body&gt;</literal> tag wraps the body of the email. 
+      You can use regular HTML tags inside the body as well as JSF components.
+    </para>
+    	
+    <para>
+      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:
+    </para>
+    	
+    <programlisting role="JAVA"><![CDATA[@In(create=true)
+private Renderer renderer;
+   
+public void send() {
+    try {
+       renderer.render("/simple.xhtml");
+       facesMessages.add("Email sent successfully");
+   } 
+   catch (Exception e) {
+       facesMessages.add("Email sending failed: " + e.getMessage());
+   }
+}]]></programlisting>
+    	
+   	<para>
+      If, for example, you entered an invalid email address, then an exception 
+      would be thrown, which is caught and then displayed to the user.
+    </para>
+   	
+   	<section>
+   	  <title>Attachments</title>
+   	  <para>
+        Seam makes it easy to attach files to an email.  It supports most of 
+        the standard java types used when working with files.
+      </para>
+   		
+   	  <para>
+        If you wanted to email the <literal>jboss-seam-mail.jar</literal>:
+      </para>
+   		
+   	  <programlisting role="XHTML"><![CDATA[<m:attachment value="/WEB-INF/lib/jboss-seam-mail.jar"/>]]></programlisting>
+   		    	
+   	  <para>
+        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:
+      </para>
+   		
+   	  <programlisting role="XHTML"><![CDATA[<m:attachment value="/WEB-INF/lib/jboss-seam-mail.jar" fileName="this-is-so-cool.jar"/>]]></programlisting>
+   		
+   	  <para>
+        You could also attach a <literal>java.io.File</literal>, a <literal>java.net.URL</literal>:
+      </para>
+   		
+   	  <programlisting role="XHTML"><![CDATA[<m:attachment value="#{numbers}"/>]]></programlisting>
+   		
+   	  <para>
+        Or a <literal>byte[]</literal> or a <literal>java.io.InputStream</literal>:
+      </para>
+   		
+   	  <programlisting role="XHTML"><![CDATA[<m:attachment value="#{person.photo}" contentType="image/png"/>]]></programlisting>
+   		
+   	  <para>
+        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).
+      </para>
+   		
+   	  <para>
+        And it gets even better, you can attach a Seam generated PDF, or any 
+        standard JSF view, just by wrapping a <literal>&lt;m:attachment&gt;</literal> 
+        around the normal tags you would use:
+      </para>
+   		
+   	  <programlisting role="XHTML"><![CDATA[<m:attachment fileName="tiny.pdf">
+    <p:document>                                                      
+        A very tiny PDF                                                                                                
+    </p:document>
+</m:attachment>]]></programlisting>
+
+	  <para>
+        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>&lt;ui:repeat&gt;</literal>:
+      </para>
+		
+	  <programlisting role="XHTML"><![CDATA[<ui:repeat value="#{people}" var="person">
+    <m:attachment value="#{person.photo}" contentType="image/jpeg" fileName="#{person.firstname}_#{person.lastname}.jpg"/>
+</ui:repeat>]]></programlisting>
+   		
+      <para>
+        And if you want to display an attached image inline:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<m:attachment 
+    value="#{person.photo}" 
+    contentType="image/jpeg" 
+    fileName="#{person.firstname}_#{person.lastname}.jpg" 
+    status="personPhoto" 
+    disposition="inline" />
+<img src="cid:#{personPhoto.contentId}" />]]></programlisting>
+
+      <para>
+        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) &#8212; magic!
+      </para>
+          
+      <para>
+        You must declare the attachment before trying to access the status object.
+      </para>
+      
+    </section>
+    
+	<section>
+	  <title>HTML/Text alternative part</title>
+	    	
+	  <para>
+        Whilst most mail readers nowadays support HTML, some don't, so you can 
+        add a plain text alternative to your email body:
+      </para>
+	    	 
+	  <programlisting role="XHTML"><![CDATA[<m:body>
+    <f:facet name="alternative">Sorry, your email reader can't show our fancy email, 
+please go to http://labs.jboss.com/jbossseam to explore Seam.</f:facet>
+</m:body>]]></programlisting>
+
+	</section>
+	    
+	<section>
+	  <title>Multiple recipients</title>
+	    	
+	  <para>
+        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>&lt;ui:repeat&gt;</literal>:
+      </para>
+	    	 
+	  <programlisting role="XHTML"><![CDATA[<ui:repeat value="#{allUsers} var="user">
+    <m:to name="#{user.firstname} #{user.lastname}" address="#{user.emailAddress}" />
+</ui:repeat>]]></programlisting>
+
+    </section>
+	    
+	<section>
+	  <title>Multiple messages</title>
+	    	
+	  <para>
+        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>&lt;ui:repeat&gt;</literal>:
+      </para>
+	    	
+	  <programlisting role="XHTML"><![CDATA[<ui:repeat value="#{people}" var="p">
+    <m:message>
+        <m:from name="#{person.firstname} #{person.lastname}">#{person.address}</m:from>
+        <m:to name="#{p.firstname}">#{p.address}</m:to>
+            ...
+    </m:message>
+</ui:repeat>]]></programlisting>
+
+	</section>
+	    
+	<section>
+	  <title>Templating</title>
+	    	
+	  <para>
+        The mail templating example shows that facelets templating Just Works 
+        with the Seam mail tags.
+      </para>
+	    	
+	  <para>
+        Our <literal>template.xhtml</literal> contains:
+      </para>
+	    	
+	  <programlisting role="XHTML"><![CDATA[<m:message>
+   <m:from name="Seam" address="do-not-reply at jboss.com" />
+   <m:to name="#{person.firstname} #{person.lastname}">#{person.address}</m:to>
+   <m:subject>#{subject}</m:subject>
+   <m:body>
+       <html>
+           <body>
+               <ui:insert name="body">This is the default body, specified by the template.</ui:insert>
+           </body>
+       </html>
+   </m:body>
+</m:message>]]></programlisting>
+
+      <para>
+        Our <literal>templating.xhtml</literal> contains:
+      </para>
+	    	
+      <programlisting role="XHTML"><![CDATA[<ui:param name="subject" value="Templating with Seam Mail"/>
+<ui:define name="body">
+    <p>This example demonstrates that you can easily use <i>facelets templating</i> in email!</p>
+</ui:define>]]></programlisting>
+            
+      <para>
+        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).
+      </para>
+            
+      <para>
+        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!
+      </para>
+            
+            
+	</section>
+	    
+	<section>
+	  <title>Internationalisation</title>
+	  
+      <para>
+        Seam supports sending internationalised messages.  By default, the 
+        encoding provided by JSF is used, but this can be overridden on the 
+        template:
+      </para>
+      
+	  <programlisting role="XHTML"><![CDATA[<m:message charset="UTF-8">
+   ...
+</m:message>]]></programlisting>
+
+      <para>
+        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:
+      </para> 
+    
+      <programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>]]></programlisting>
+    </section>
+	    
+	<section>
+      <title>Other Headers</title>
+	    	
+      <para>
+        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:
+      </para>
+	    	
+	  <programlisting role="XHTML"><![CDATA[<m:message xmlns:m="http://jboss.com/products/seam/mail"
+    importance="low"
+    requestReadReceipt="true"/>]]></programlisting>
+   
+      <para>
+        Otherise you can add any header to the message using the 
+        <literal>&lt;m:header&gt;</literal> tag:
+      </para>
+	    	
+      <programlisting role="XHTML"><![CDATA[<m:header name="X-Sent-From" value="JBoss Seam"/>]]></programlisting>
+	    	
+    </section>
+
+  </section>
+  <section>
+    <title>Receiving emails</title>
+    
+    <para>
+      If you are using EJB then you can use a MDB (Message Driven Bean) to 
+      receive email.  JBoss provides a JCA adaptor &#8212; 
+      <literal>mail-ra.rar</literal> &#8212; 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>extras/</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.
+    </para>
+    
+    <note>
+        <title>Technology preview </title>    
+    	<para>Distributed mail-ra.rar in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+    </note>
+         
+    
+    <para>
+      You can configure it like this:
+    </para>
+      
+	<programlisting role="JAVA"><![CDATA[@MessageDriven(activationConfig={
+    @ActivationConfigProperty(propertyName="mailServer", propertyValue="localhost"),
+    @ActivationConfigProperty(propertyName="mailFolder", propertyValue="INBOX"),
+    @ActivationConfigProperty(propertyName="storeProtocol", propertyValue="pop3"),
+    @ActivationConfigProperty(propertyName="userName", propertyValue="seam"),
+    @ActivationConfigProperty(propertyName="password", propertyValue="seam")
+})
+ at ResourceAdapter("mail-ra.rar")
+ at Name("mailListener")
+public class MailListenerMDB implements MailListener {
+
+    @In(create=true)
+    private OrderProcessor orderProcessor;
+
+    public void onMessage(Message message) {
+       // Process the message
+       orderProcessor.process(message.getSubject());
+    }
+   
+}]]></programlisting>
+
+    <para>
+      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.
+    </para>
+
+    <para>
+      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>.
+    </para>
+		
+    <para>
+      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.
+    </para>
+	
+  </section>
+
+  <section>
+    <title>Configuration</title>
+		
+    <para>
+      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>.
+    </para>
+            
+    <para>
+      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.
+    </para>
+            
+    <para>
+      The <literal>mailSession</literal> component uses JavaMail to talk to a 
+      'real' SMTP server.
+    </para>
+		
+    <section>
+      <title><literal>mailSession</literal></title>
+	        
+      <para>
+        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.
+      </para>
+	        
+	  <para>
+        The mailSession component's properties are described in more detail in 
+        <xref linkend="components.mail"/>.
+      </para>
+	       
+	  <section>
+		<title>JNDI lookup in JBoss AS</title>
+		        
+		<para>
+          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.
+        </para>
+		        
+        <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+    xmlns:core="http://jboss.com/products/seam/core"
+    xmlns:mail="http://jboss.com/products/seam/mail">
+        
+    <mail:mail-session session-jndi-name="java:/Mail"/>
+    
+</components>]]></programlisting>
+
+        <para>
+          Here we tell Seam to get the mail session bound to 
+          <literal>java:/Mail</literal> from JNDI.
+        </para>
+		        
+	  </section>
+	        
+      <section>
+        <title>Seam configured Session</title>
+	        	
+        <para>
+          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:
+        </para>
+	      	 	
+        <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+    xmlns:core="http://jboss.com/products/seam/core"
+    xmlns:mail="http://jboss.com/products/seam/mail">
+        
+    <mail:mail-session host="smtp.example.com"/>
+    
+</components>]]></programlisting>
+
+      </section>
+    </section>
+  </section>
+	
+  <section>
+    <title>Meldware</title>
+	
+    <para>
+	  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. 
+    </para>
+		
+    <para>
+      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>. 
+    </para>
+    <para>
+      To create mailboxes, users and aliases, you can use the 
+      <literal>meldware</literal> component:
+    </para>
+		
+    <programlisting role="XHTML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+    xmlns:core="http://jboss.com/products/seam/core"
+    xmlns:mail="http://jboss.com/products/seam/mail">
+              
+    <mail:mail-session host="smtp.example.com"/>
+    
+    <mail:meldware>
+        <mail:users>
+            <value>#{duke}</value>
+            <value>#{root}</value>
+	    </mail:users>
+    </mail:meldware>
+    
+   	<mail:meldware-user name="duke" username="duke" password="duke">
+   	    <mail:aliases>
+   	        <value>duke at jboss.org</value>
+   	        <value>duke at jboss.com</value>
+   	    </mail:aliases>
+   	<mail:meldware-user name="root" username="root" password="root" administrator="true" /> 
+</components>]]></programlisting>
+
+    <para>
+      Here we've created two users, <literal>duke</literal>, who has two email
+      addresses and an administrator with the username <literal>root</literal>.
+    </para>
+ 			
+  </section>
+
+  <section id="mail.tags">
+    <title>Tags</title>
+
+    <para>
+      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.
+    </para>
+            
+    <para>
+      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>.
+    </para>
+            
+    <variablelist>
+      <varlistentry>
+        <term>&lt;m:message&gt;</term>
+        <listitem>
+          <para>
+	        Root tag of a mail message
+	      </para>
+	      <itemizedlist>
+            <listitem>
+              <para>
+	            <literal>importance</literal> &#8212; low, normal or high.  By
+                default normal, this sets the importance of the mail message.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>precedence</literal> &#8212; sets the precedence of
+                the message (e.g. bulk).
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>requestReadReceipt</literal> &#8212; 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.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>urlBase</literal> &#8212; If set, the value is
+                prepended to the <literal>requestContextPath</literal> allowing
+                you to use components such as
+                <literal>&lt;h:graphicImage&gt;</literal> in your emails.
+              </para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:from&gt;</term>
+        <listitem>
+          <para>
+            Set's the From: address for the email.  You can only have one of 
+            these per email.
+          </para>
+          <itemizedlist>
+            <listitem>
+              <para>
+                <literal>name</literal> &#8212; the name the email should come
+                from.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>address</literal> &#8212; the email address the email
+                should come from.
+              </para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:replyTo&gt;</term>
+          <listitem>
+            <para>
+              Set's the Reply-to: address for the email.  You can only have one
+              of these per email.
+            </para>
+           <itemizedlist>
+             <listitem>
+               <para>
+                 <literal>address</literal> &#8212; the email address the email
+                 should come from.
+               </para>
+             </listitem>
+           </itemizedlist>
+         </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:to&gt;</term>
+  	    <listitem>
+          <para>
+            Add a recipient to the email. Use multiple &lt;m:to&gt; tags for
+            multiple recipients. This tag can be safely placed inside a repeat 
+            tag such as &lt;ui:repeat&gt;.
+        </para>
+          <itemizedlist>
+            <listitem>
+              <para>
+                <literal>name</literal> &#8212; the name of the recipient.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>address</literal> &#8212; the email address of the recipient.
+              </para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:cc&gt;</term>
+          <listitem>
+            <para>
+              Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags
+              for multiple ccs. This tag can be safely placed inside a iterator
+              tag such as &lt;ui:repeat&gt;.
+            </para>
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <literal>name</literal> &#8212; the name of the recipient.
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>address</literal> &#8212;  the email address of the
+                  recipient.
+                </para>
+             </listitem>
+           </itemizedlist>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:bcc&gt;</term>
+          <listitem>
+            <para>
+              Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; 
+              tags for multiple bccs. This tag can be safely placed inside a
+              repeat tag such as &lt;ui:repeat&gt;.
+            </para>
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <literal>name</literal> &#8212; the name of the recipient.
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>address</literal> &#8212; the email address of the
+                  recipient.
+                </para>
+              </listitem>
+            </itemizedlist>
+         </listitem>
+     	</varlistentry>
+      <varlistentry>
+        <term>&lt;m:header&gt;</term>
+          <listitem>
+            <para>
+              Add a header to the email (e.g. <literal>X-Sent-From: JBoss Seam</literal>)
+            </para>
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <literal>name</literal> &#8212; The name of the header to 
+                  add (e.g. <literal>X-Sent-From</literal>).
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  <literal>value</literal> &#8212; The value of the header to
+                  add (e.g. <literal>JBoss Seam</literal>).
+                </para>
+             </listitem>
+           </itemizedlist>
+         </listitem>
+    	</varlistentry>
+      <varlistentry>
+        <term>&lt;m:attachment&gt;</term>
+        <listitem>
+          <para>
+            Add an attachment to the email.
+          </para>
+          <itemizedlist>
+            <listitem>
+              <para>
+                <literal>value</literal> &#8212; The file to attach:
+              </para>
+ 	            <itemizedlist>
+         	      <listitem>
+                  <para>
+                    <literal>String</literal> &#8212; A <literal>String</literal>
+                     is interpreted as a path to file within the classpath
+                  </para>
+                </listitem>
+                <listitem>    
+                  <para>
+                    <literal>java.io.File</literal> &#8212; An EL expression
+                    can reference a <literal>File</literal> object
+                  </para>
+                </listitem>
+        	      <listitem>
+ 	           	    <para>
+                   <literal>java.net.URL</literal> &#8212; An EL expression
+                   can reference a <literal>URL</literal> object
+                  </para>
+                </listitem>
+  		      <listitem>
+                  <para>
+                    <literal>java.io.InputStream</literal> &#8212; 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.
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <literal>byte[]</literal> &#8212; 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.
+                  </para>
+                </listitem>
+              </itemizedlist>
+              <para>If the value attribute is ommitted:</para>
+              <itemizedlist>
+                <listitem>
+                  <para>
+                    If this tag contains a <literal>&lt;p:document&gt;</literal>
+                    tag, the document described will be generated and 
+                    attached to the email.  A <literal>fileName</literal>
+                    should be specfied.
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    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.
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>fileName</literal> &#8212; Specify the file name to
+                use for the attached file.
+              </para>
+            </listitem>
+            <listitem>
+              <para>
+                <literal>contentType</literal> &#8212; Specify the MIME type
+                of the attached file
+              </para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:subject&gt;</term>
+        <listitem>
+          <para>
+            Set's the subject for the email.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>&lt;m:body&gt;</term>
+        <listitem>
+          <para>
+            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.
+          </para>
+          <itemizedlist>
+            <listitem>
+              <para>
+                <literal>type</literal> &#8212; If set to <literal>plain</literal>
+                then a plain text email will be generated otherwise an HTML 
+                email is generated.  
+              </para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Mail.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Migration.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Migration.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Migration.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1412 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+<chapter id="migration">
+   <title>Migrating from Seam 1.2 to Seam 2</title>
+   
+   <para>
+      There are two approaches to migrating your Seam 1.2 application to Seam 2.
+      The recommended approach, described in <xref linkend="migrating.skeleton"/>
+      is to create a new project using seam-gen in Seam 2, and migrate your code
+      across. We recognize that many projects may have extensive customizations
+      to their project, so we also provide instructions for how to upgrade your
+      project in-situ in <xref linkend="migrating.insitu" /> Due to the number 
+      of changes introduced between Seam 1.2 and Seam 2, this may not always be 
+      a straightforward process! 
+   </para>
+   
+   <para>
+      However you decide to migrate your application, you'll need to alter your
+      code, as many components have moved. <xref linkend="migrating.general"/>
+      details those changes.
+   </para>
+   
+   <section id="migrating.skeleton">
+      <title>Creating a new project skeleton using seam-gen</title>
+      
+      <para>
+         Start by creating a new skeleton seam project. In your Seam 2
+         directory run:
+      </para>
+      
+      <programlisting>~/seam_2_0$ ./seam setup</programlisting>
+      
+      <para>
+         Customize the defaults as needed. You'll want to set the location of 
+         JBoss EAP, name your project and select an EAR or WAR as needed; you 
+         can accept the defaults for Java package names (as we aren't going to
+         use the reverse engineering features of seam-gen); you'll want to set
+         your JDBC driver, URL, username and password correctly, and configure
+         Hibernate to drop and recreate tables if so desired.
+      </para>
+      
+      <para>
+         Now, we are ready to import your existing code and views into the new 
+         structure. The simplest way to do this is to import both projects 
+         into your favorite IDE, and copy your code and views across. 
+      </para>
+      
+      <para>
+         Continue on to <xref linkend="migrating.general"/> for details regarding
+         the changes needed to your code, and configuration files.
+      </para>
+      
+   </section>
+   
+   <section id="migrating.insitu">
+      <title>In place migration</title>
+      
+      <para>
+         This requires more work, but is suitable for more complex projects. The
+         steps below may not be an exhaustive list, so if you have to any extra
+         steps please report them through the Customer Support Portal.
+      </para>
+      
+      <section>
+         <title>Migrating to JSF 1.2</title>
+         
+         <warning>
+            <para>
+               You only need to do this if you are migrating from the community
+               edition of Seam, JBoss EAP 4.2 and 4.3 shipped a version of Seam
+               1.2 which used JSF 1.2.
+            </para>
+         </warning>
+         
+         <para>
+            Seam 2.0 requires JSF 1.2, and JBoss EAP supports Sun's JSF RI. To 
+            switch to JSF 1.2, you need to remove the MyFaces listener:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<!--Remove for Seam 2-->
+<!--<listener>
+   <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
+</listener>-->]]></programlisting>
+         
+         <para>
+            from your <literal>web.xml</literal>.
+         </para>
+         
+         <para>The JSF RI doesn't require you to specify a listener.</para>
+         
+         <note>
+            <para>
+               Due to an incompatibility between Seam and MyFaces, you had to
+               use client side state saving in Seam 1.2. Switching to the JSF RI
+               1.2 lifts this restriction. So remove the context param javax.faces.STATE_SAVING_METHOD.
+            </para> 
+         </note>
+      </section>
+      
+      <section>
+         <title>Migrating <literal>web.xml</literal> to Seam 2</title>
+         
+		<para>
+			First change the <literal>web-app</literal> version from 2.4 to 2.5.
+            There is also change in j2ee to javaee in namespace URL. Declaration of the <literal>web.xml</literal>
+            should look like:</para>
+            
+<programlisting role="XML"><![CDATA[<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="
+    http://java.sun.com/xml/ns/javaee
+    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
+  version="2.5">
+  ...
+</web-app>]]></programlisting> 
+         
+         <para>
+            In your Seam 1.2 app you may have specified some Seam specific 
+            configuration in <literal>web.xml</literal>.  First, we'll discuss
+            all the Seam related elements you need in 
+            <literal>web.xml</literal>, not just those that have changed, noting
+            any changes.
+         </para>
+         
+         <para>
+             In Seam 2, you need specify a listener (just as you did in Seam 
+             1.2):
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<listener>
+   <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+</listener>]]></programlisting>
+
+         <para>
+            Modify the Seam master filter (note the package of the class 
+            changed):
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<filter>
+   <filter-name>Seam Filter</filter-name>
+   <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+</filter>
+
+<filter-mapping>
+   <filter-name>Seam Filter</filter-name>
+   <url-pattern>/*</url-pattern>
+</filter-mapping>]]></programlisting>
+
+         <para>
+            If any other Seam Filters (for example the 
+            <literal>SeamExceptionFilter</literal>) are enumerated, they should
+            be removed.
+         </para>
+
+         <para>
+            Finally, you should have the Seam resource servlet (just as you did
+            in Seam 1.2):
+         </para>
+         
+             <programlisting role="XML"><![CDATA[<servlet>
+   <servlet-name>Seam Resource Servlet</servlet-name>
+   <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+</servlet>
+    
+<servlet-mapping>
+   <servlet-name>Seam Resource Servlet</servlet-name>
+   <url-pattern>/seam/resource/*</url-pattern>
+</servlet-mapping>]]></programlisting>
+         
+         <para>
+            Seam 2 will automatically install RichFaces' Ajax4JSF if it present
+            in your project so you should make sure the Ajax4JSF filter isn't
+            declared:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<!--Remove for Seam 2-->
+<!--<filter>
+  <display-name>Ajax4jsf Filter</display-name>
+  <filter-name>ajax4jsf</filter-name>
+  <filter-class>org.ajax4jsf.Filter</filter-class>
+</filter>-->
+    
+<!--Remove for Seam 2-->
+<!--<filter-mapping>
+  <filter-name>ajax4jsf</filter-name>
+  <url-pattern>*.seam</url-pattern>
+</filter-mapping>-->]]></programlisting>
+      
+         <para>
+            Next, we'll describe the changes you need to make to your JSF
+            <literal>ViewHandler</literal> configuration. Previously the
+            configuration you used depended on whether you were using Seam's EL
+            enhancements or Ajax4JSF or both. In Seam 2 you should use the
+            default <literal>FaceletViewHandler</literal>.
+         </para>
+         
+         <para> 
+            Seam 1.2 required you to use a special JSF 
+            <literal>ViewHandler</literal> to install it's EL enhancement 
+            (whilst in Seam 2 the EL enhancement is built in). The version of 
+            Ajax4JSF distributed with Seam 1.2 required you to specify which 
+            <literal>ViewHandler</literal> to use when it was in use. Make sure
+            that the Ajax4JSF configuration is removed from your 
+            <literal>web.xml:</literal>:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<!--Remove for Seam 2-->
+<!--<context-param>
+   <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
+   <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
+</context-param>-->]]></programlisting>
+
+
+      </section>
+      
+      <section>
+         <title>Migrating <literal>faces-config.xml</literal> to Seam 2</title>
+
+		 <para>Remove the DTD on the document and add the XML Schema declarations to the
+             root tag:
+         </para>
+<programlisting role="XML"><![CDATA[<faces-config version="1.2"
+  xmlns="http://java.sun.com/xml/ns/javaee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="
+    http://java.sun.com/xml/ns/javaee
+    http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+  ...
+</faces-config>]]></programlisting>
+
+         <para>
+            Seam 1.2 required you to specify either the 
+            <literal>SeamPhaseListener</literal> (Seam Managed Transaction were
+            are disabled) or <literal>SeamTransactionalPhaseListener</literal> 
+            (Seam Managed Transactions are enabled) in
+            <literal>faces-config.xml</literal>. Seam 2 lets you enable or
+            disable Seam Managed Transactions in 
+            <literal>components.xml</literal>, and installs the phase listener
+            for you. Therefore, you should remove any reference to 
+            <literal>SeamPhaseListener</literal> or 
+            <literal>SeamTransactionalPhaseListener</literal> from
+            <literal>faces-config.xml</literal>. 
+         </para>
+         
+         <para>
+            Seam Managed Transaction are enabled by default, to disable Seam 
+            Managed Transactions, set 
+            <literal>transaction-management-enabled</literal> to false:
+         </para>
+      
+         <programlisting role="XML"><![CDATA[<core:init transaction-management-enabled="false"/>]]></programlisting>
+
+         <para>
+            To workaround a bug, you may have specified 
+            <literal>SeamELResolver</literal> in 
+            <literal>faces-config.xml</literal>. This is no longer required.
+         </para>
+         
+         <para>
+            Finally remove <literal>FaceletViewHandler</literal> configuration:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<application>
+   <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+</application>]]></programlisting>
+      
+      </section>
+      
+      <section>
+         <title>Deployment structure changes</title>
+         
+         <para>
+            If you have an EAR application there are some deployment structure
+            changes needed. You should move all the dependencies which you 
+            previously declared as modules in <literal>application.xml</literal> 
+            in the <literal>lib/</literal> directory of your EAR 
+            <emphasis>except</emphasis> <literal>jboss-seam.jar</literal> which 
+            should be declared as an ejb module in 
+            <literal>application.xml</literal>. Remove the unneeded module
+            declarations from <literal>application.xml</literal>.
+         </para>
+         
+      </section>
+      
+      <section id="migration.embedded">
+         <title>Migration to JBoss Embedded</title>
+
+         <para>
+            Support for deployment to JBoss Embeddable EJB3 and JBoss 
+            Microcontainer has been removed. Instead, the new JBoss Embedded 
+            distribution gives you a full set of EE-compatible APIs with 
+            simplified deployment.
+         </para>
+
+         <para>
+            For testing, you need the jars in Seam's <literal>lib/test</literal>,
+            the jars in Seam's <literal>lib/</literal> directory, your test 
+            classes and application classes together with the 
+            <literal>bootstrap/</literal> directory in your classpath. 
+            <literal>SeamTest</literal> will automatically start the container. 
+         </para>
+         
+         <warning>
+            <para>
+               You must order the classpath correctly when using Embedded with
+               <literal>SeamTest</literal>. Make sure the jars in
+               <literal>lib/test</literal> come first in any classpath order.
+               For example, when using Ant, they should be declared above any
+               other libraries in the test classpath.
+            </para>
+         </warning>
+         
+         <para>
+            If you want to run tests using the Eclipse TestNG plugin, you'll 
+            need to add these jars to the top of your TestNG classpath.  Using 
+            the Run Dialog, select the xml suite to run, and add 
+            <literal>/lib/test/jboss-embedded-all.jar</literal>,
+            <literal>/lib/test/hibernate-all.jar</literal>, 
+            <literal>/lib/test/thirdparty-all.jar</literal>, 
+            <literal>/lib/jboss-embedded-api.jar</literal>,
+            <literal>/lib/jboss-deployers-client-spi.jar</literal>, 
+            <literal>/lib/jboss-deployers-core-spi.jar</literal>, and 
+            <literal>/bootstrap</literal> as the first entries in the
+            <emphasis>User classpath</emphasis>.
+         </para>
+         
+         <para>
+            Note that JBoss Embedded is able to bootstrap a datasource from a 
+            <literal>-ds.xml</literal> file, so there is no longer a need for 
+            <literal>jboss-beans.xml</literal>.
+         </para>
+
+      </section>
+      
+   </section>
+   
+   <section id="migrating.general">
+      <title>Updating your code</title>
+      
+      <important>
+         <para>
+            Don't forget to update the XSD's in <literal>pages.xml</literal> and
+            <literal>components.xml</literal> to point at the ones for Seam 2.
+            Just change the suffix from <literal>-1.2.xsd</literal> to
+            <literal>-2.0.xsd</literal>.
+         </para>
+      </important>
+      
+      <section>
+         <title>Built-in Component changes</title>
+         
+         <para>
+            Seam's built-in components have undergone a major reorganization 
+            designed to organize them for easier learning, and to isolate 
+            dependencies upon particular technologies like JSF into specific 
+            packages.
+         </para>
+         
+         <para>
+            You'll need to update both your <literal>components.xml</literal> 
+            and any references in Java code.
+         </para>
+         
+         <para>
+            In general:
+         </para>
+         
+         <itemizedlist>
+            <listitem>
+               <para>
+                  Persistence-related components are located in 
+                  <literal>org.jboss.seam.persistence</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  jBPM related components are located in  
+                  <literal>org.jboss.seam.bpm</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  JSF-related components are located in 
+                  <literal>org.jboss.seam.faces</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  Servlet-related components are located in
+                  <literal>org.jboss.seam.web</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  Components related to asynchronicity are located in 
+                  <literal>org.jboss.seam.async</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  i18n-related components are located in 
+                  <literal>org.jboss.seam.international</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  The Pageflow component are located in 
+                  <literal>org.jboss.seam.pageflow</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  The Pages component are located in 
+                  <literal>org.jboss.seam.navigation</literal>
+               </para>
+            </listitem>
+         </itemizedlist>
+         
+         <para>
+            The following table presents a non-exhaustive list of
+            changed components:
+         </para>
+         
+         <table>
+            <title>Component's in Seam 2</title>
+            <tgroup cols="2">
+          <!--     <colspec colnum="1" colwidth="2*" />
+               <colspec colnum="2" colwidth="2*" />
+               <colspec colnum="3" colwidth="2*" />
+               <colspec colnum="4" colwidth="2*" />
+               <colspec colnum="5" colwidth="2*" />
+               <colspec colnum="6" colwidth="2*" /> -->
+
+               <thead>
+                  <row>
+                     <entry>
+                        <para>Component name</para>
+                     </entry>
+                     <entry>
+                        <para>Seam 1.2 Old class</para>
+                     </entry>
+                     <entry>
+                        <para>Seam 2 class</para>
+                     </entry>
+                     <entry>
+                        <para>XML Element</para>
+                     </entry>
+                     <entry>
+                        <para>XML namespace</para>
+                     </entry>
+                     <entry>
+                        <para>XSD</para>
+                     </entry>
+                  </row>
+               </thead>
+               <tbody>
+                  <row>
+                      <entry>
+                        <para><literal>actor</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Actor</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.Actor</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;bpm:actor /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/bpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/bpm-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                      <entry>
+                        <para><literal>businessProcess</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.BusinessProcess</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.BusinessProcess</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>dispatcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Dispatcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.async.Dispatcher</literal> (now an interface)</para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;async:timer-service-dispatcher /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/async</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/async-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                      <entry>
+                        <para>Specified by user</para>
+                     </entry>
+                     <entry>
+                        <para><literal>javax.persistence.EntityManagerFactory</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>javax.persistence.EntityManagerFactory</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;persistence:entity-manager-factory /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>exceptions</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Exceptions</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.exception.Exceptions</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>facesMessages</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.FacesMessages</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.FacesMessages</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>facesPage</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.FacesPage</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.FacesPage</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  
+                  <row>
+                     <entry>
+                        <para>Specified by user</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Filter</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.persistence.Filter</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;persistence:filter /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para>Specified by user</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.HibernateSessionFactory</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.persistence.HibernateSessionFactory</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;persistence:hibernate-session-factory /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>httpError</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.HttpError</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.HttpError</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>image</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Image</literal></para>
+                     </entry>
+                     <entry>
+                        <para>removed</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>isUserInRole</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>Map&lt;String, Boolean&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.IsUserInRole</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>jbpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Jbpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.Jbpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>bpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/bpm</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/bpm-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.LocalDispatcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.async.LocalDispatcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>localeSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.LocaleSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.international.LocaleSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;international:locale-selector /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/international</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/international-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.LocalTransactionListener</literal></para>
+                     </entry>
+                     <entry>
+                        <para>removed</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para>Specified by user</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.ManagedHibernateSession</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.persistence.ManagedHibernateSession</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;persistence:managed-hibernate-session /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>jbpmContext</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.ManagedJbpmContext</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.ManagedJbpmContext</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para>Specified by user</para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.ManagedEntityManager</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.persistence.ManagedEntityManager</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;persistence:managed-entity-manager /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/persistence-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>microcontainer</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Microcontainer</literal></para>
+                     </entry>
+                     <entry>
+                        <para>removed</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>pageflow</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Pageflow</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.Pageflow</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>pages</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Pages</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.navigation.Pages</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;navigation:pages/&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/navigation</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/navigation-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>persistenceContexts</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.PersistenceContexts</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.persistence.PersistenceContexts</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>pooledTask</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.PooledTask</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.PooledTask</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>processInstanceFinder</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.ProcessInstanceFinder</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.ProcessInstanceFinder</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>redirect</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Redirect</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.Redirect</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>switcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Switcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.faces.Switcher</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>timeZoneSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.TimeZoneSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.international.TimeZoneSelector</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>&lt;international:time-zone-selector /&gt;</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/international</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>http://jboss.com/products/seam/international-2.0.xsd</literal></para>
+                     </entry>
+                  </row>
+                  <row>
+                     <entry>
+                        <para><literal>transition</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.core.Transistion</literal></para>
+                     </entry>
+                     <entry>
+                        <para><literal>org.jboss.seam.bpm.Transition</literal></para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                     <entry>
+                        <para>N/A</para>
+                     </entry>
+                  </row>
+               </tbody>
+            </tgroup>
+         </table>
+         
+      </section>
+      
+      <section>
+         <title>Annotation changes in Seam 2</title>
+         
+         <para>
+            Annotations have also moved to reflect their purpose. In
+         </para>
+         
+         <itemizedlist>
+            <listitem>
+               <para>
+                  BPM-related annotations are located in
+                  <literal>org.jboss.seam.annotations.bpm</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@BeginTask</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@CreateProcess</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@EndTask</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@ResumeProcess</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@StartTask</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Transition</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+            <listitem>
+               <para>
+                  JSF-related annotations are located in
+                  <literal>org.jboss.seam.annotations.faces</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@Converter</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Validator</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+            <listitem>
+               <para>
+                  Interceptor annotations are located in
+                  <literal>org.jboss.seam.annotations.intercept</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@AroundInvoke</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@BypassIntercetors</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Interceptor</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Interceptors</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+            <listitem>
+               <para>
+                  Annotations related to asynchronicity are located in
+                  <literal>org.jboss.seam.annotations.async</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@Asynchronous</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Duration</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Expiration</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@FinalExpiration</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@IntervalCron</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@IntervalDuration</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+            <listitem>
+               <para>
+                  The annotation to inject a request parameter is located in
+                  <literal>org.jboss.seam.annotations.web</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@RequestParameter</literal>
+                     </para>
+                  </listitem>
+                </itemizedlist> 
+            </listitem>
+            <listitem>
+               <para>
+                  The annotation required to make a method accessible via 
+                  remoting is located in 
+                  <literal>org.jboss.seam.annotations.remoting</literal>
+               </para>
+            </listitem>
+            <listitem>
+               <para>
+                  The annotation to apply a security restriction to the 
+                  component is located in
+                  <literal>org.jboss.seam.annotations.security</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@Restrict</literal>
+                     </para>
+                  </listitem>
+                </itemizedlist> 
+            </listitem>
+            <listitem>
+               <para>
+                  Exception handling annotations moved to 
+                  <literal>org.jboss.seam.annotations.exception</literal>
+               </para>
+               <itemizedlist>
+                  <listitem>
+                     <para>
+                        <literal>@HttpError</literal>
+                     </para>
+                  </listitem>
+                  <listitem>
+                     <para>
+                        <literal>@Redirect</literal>
+                     </para>
+                  </listitem>
+               </itemizedlist>
+            </listitem>
+         </itemizedlist>
+         
+         <note>
+            <para>
+               You also need to replace <literal>@Intercept(NEVER)</literal>
+               with <literal>@BypassInterceptors</literal>.
+            </para>
+         </note>
+         
+          
+      </section>
+      
+      <section>
+         <title>Other changes needed to <literal>components.xml</literal></title>
+         
+         <para>
+            The <literal>conversation-is-long-running-parameter</literal>
+            attribute has been removed from Seam (and doesn't have a 
+            replacement), remove it from <literal>&lt;core:init /&gt;</literal>.
+         </para> 
+   
+         <para>
+            As described in <xref linkend="migration.embedded"/>, Embeddable EJB3
+            and Microcontainer support has been removed, so you need to remove
+            <literal>&lt;core:ejb/&gt;</literal> and 
+            <literal>&lt;core:microcontainer/&gt;</literal> from 
+            <literal>components.xml</literal>.
+         </para>
+         
+         <para>
+            The EE transaction integration has been redesigned, so the 
+            transaction listener component name has changed. Replace 
+            <literal>&lt;core:transaction-listener/&gt;</literal> with 
+            <literal>&lt;transaction:ejb-transaction/&gt;</literal>. 
+         </para>
+         
+         <para>
+            The resource bundle loader has been split out of the resource bundle,
+            so you should replace 
+            <literal>&lt;core:resource-bundle/&gt;</literal> with 
+            <literal>&lt;core:resource-loader/&gt;</literal>. 
+         </para>
+         
+         <para>
+            Finally, you should change any <literal>expression</literal> 
+            attributes to <literal>execute</literal>:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<event type="org.jboss.seam.notLoggedIn">
+   <action execute="#{redirect.captureCurrentView}"/>
+</event>]]></programlisting>
+
+      </section>
+      
+      <section>
+         <title>Migration to jBPM 3.2</title>
+
+         <para>
+            If you are using jBPM for business processes, 
+            you need to add the tx service to <literal>jbpm.cfg.xml</literal>:
+         </para>
+         
+         <programlisting role="XML"><![CDATA[<service name="tx" factory="org.jbpm.tx.TxServiceFactory" />]]></programlisting> 
+
+         <note>
+            <para>
+               You don't need to do this if you are just using jBPM for 
+               pageflows.
+            </para>
+         </note>
+         
+      </section>
+      
+      <section>
+         <title>Migration to RichFaces 3.1</title>
+
+         <para>
+            If you are using RichFaces or Ajax4jsf, a major reorganization of 
+            the project has occurred. The jars <literal>ajax4jsf.jar</literal> and 
+            <literal>richfaces.jar</literal> have been replaced by 
+            <literal>richfaces-api.jar</literal> (which should go in your ear 
+            <literal>lib/</literal> directory), 
+            <literal>richfaces-impl.jar</literal> and 
+            <literal>richfaces-ui.jar</literal> (both of which go in 
+            <literal>WEB-INF/lib</literal>).
+         </para>
+         
+         <para>
+         &lt;s:selectDate&gt; has been deprecated in favor of &lt;rich:calendar&gt;. No more 
+		development will be done on &lt;s:selectDate&gt;. You can remove the styles related
+		to the data picker from your stylesheet to save on unnecessary bandwidth use.
+         </para>
+         <para>
+            You should check the RichFaces documentation for more information on
+            parameter name changes and namespace changes.
+         </para>
+         
+      </section>
+      
+      <section>
+         <title>Changes to Seam UI</title>
+         
+         <para>
+            As most JSF component sets provide a date selector, the Seam date
+            selector (&lt;s:selectDate&gt;) has been deprecated. You
+            should replace it with the date selector from the component set you
+            use.
+         </para>
+         
+         <para>
+            Selector &lt;s:decorate/&gt; has become a naming container.  
+            Therefore client ids have changed from 
+            <literal>fooForm:fooInput</literal> to 
+            <literal>fooForm:foo:fooInput</literal>, assuming the following declaration:</para>
+                        
+ <programlisting role="XML"><![CDATA[<h:form id="fooForm">
+  <s:decorate id="foo">
+    <h:inputText id="fooInput" value="#{bean.property}"/>
+   </s:decorate>
+</h:form>]]></programlisting>
+
+          <para>If you don't provide an id to &lt;s:decorate&gt;, one will be generated by JSF.</para>         
+         
+      </section>
+      
+      <section>
+      	<title>Changes to seam-gen</title>
+      	
+      	<para>There was a change in seam-gen regarding
+		how the generated classes are organized when generate-entities is
+		executed.</para>
+
+		<variablelist>		
+		<varlistentry>
+			<term>Old way:</term>				
+			<listitem><para>src/model/com/domain/projectname/model/EntityName.java</para></listitem>
+			<listitem><para>src/action/com/domain/projectname/model/EntityNameHome.java</para></listitem>
+			<listitem><para>src/action/com/domain/projectname/model/EntityNameList.java</para></listitem>
+		</varlistentry>
+		
+		<varlistentry><term>New way:</term>
+			<listitem><para>src/model/com/domain/projectname/model/EntityName.java</para></listitem>
+		  	<listitem><para>src/action/com/domain/projectname/action/EntityNameHome.java</para></listitem>
+		  	<listitem><para>src/action/com/domain/projectname/action/EntityNameList.java</para></listitem>
+		</varlistentry>
+		</variablelist>
+		  
+
+		<para>Home and Query objects are <quote>action</quote> components, not <quote>model</quote> components
+		and are therefore placed in the action package. This change makes the
+		conventions followed by generate-entities consistent with the conventions
+		used in the new-entity command.</para>
+
+		<para>Remember, model classes are kept separate because they cannot be hot reloaded.</para>
+
+		<para>Due to the change from JBoss Embeddable EJB3 to JBoss Embedded for testing,
+		it is recommended that you generate a project using seam-gen from Seam 2
+		and borrow the <literal>build.xml</literal> file from that project. If you have made
+		significant changes to the <literal>build.xml</literal> in your project, you may want to focus
+		on just migrating the test-related targets.</para>
+		
+		<para>In order for tests to work under JBoss Embedded, you need to change the
+		value of the &lt;datasource&gt; element in <literal>resources/META-INF/persistence-test.xml</literal>
+		(or <literal>persistence-test-war.xml</literal>) to <literal>java:/DefaultDS</literal>. The alternative is to
+		deploy a <literal>*-ds.xml</literal> file to the <literal>bootstrap/deploy</literal> folder and use the JNDI name
+		defined by that file.</para>
+		
+		<para>If you use the <literal>build.xml</literal> from a Seam 2 seam-gen project, you will also need
+		the <literal>deployed-*.list</literal> file(s). These files define which JAR files are packaged
+		in the EAR or WAR. They were introduced to externalize this set of JARS from
+		the <literal>build.xml</literal> file.</para>
+		
+		<para>To accommodate a change in the RichFaces panel, you need to add the following
+		style to your stylesheet. Otherwise, you're search criteria block in pages
+		created by generate-entities will bleed into the table of results.</para>
+
+<programlisting><![CDATA[.rich-stglpanel-body {
+    overflow: auto;
+}]]></programlisting>
+
+      	
+      </section>	
+   </section>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Migration.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Persistence.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Persistence.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Persistence.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,603 @@
+<chapter id="persistence">
+    <title>Seam and Object/Relational Mapping</title>
+    
+    <para>
+        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.
+    </para>
+    
+    <section>
+        <title>Introduction</title>
+    
+    <para>
+        Seam grew out of the frustration of the Hibernate team with the 
+        statelessness typical of the previous generation of Java application 
+        architectures. The state management architecture of Seam was originally
+        designed to solve problems relating to persistence&#8212;in particular
+        problems associated with <emphasis>optimistic transaction processing</emphasis>.
+        Scalable online applications always use optimistic transactions. An atomic 
+        (database/JTA) level transaction should not span a user interaction unless
+        the application is designed to support only a very small number of concurrent
+        clients. But almost all interesting work involves first displaying data
+        to a user, and then, slightly later, updating the same data. So Hibernate was
+        designed to support the idea of a persistence context which spanned an
+        optimistic transaction. 
+    </para>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+        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:
+    </para>
+    
+    <itemizedlist>
+        <listitem>
+            <para>
+                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).
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Propagation of the persistence context between stateful components
+                in the same optimistic transaction is possible, but tricky.
+            </para>
+        </listitem>
+    </itemizedlist>
+    
+    <para>
+        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.
+    </para>
+    
+    </section>
+    
+    <section id="persistence.seam-managed-transactions">
+    	<title>Seam managed transactions</title>
+    	<para>
+            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.
+    	</para>
+
+    	<para>
+            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.
+    	</para>
+
+    	<itemizedlist>
+    		<listitem>
+    			<para>
+                    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.
+    			</para>
+    		</listitem>
+    		<listitem>
+                <para>
+                    Rendering of the view might require lazy fetching of associations.
+                </para>
+    		</listitem>
+    	</itemizedlist>
+
+    	<para>
+            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!
+    	</para>
+
+    	<para>
+            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.
+    	</para>
+
+    	<para>
+            This pattern is usually implemented as a single transaction which spans the entire request. 
+            There are several problems with this implementation, the most serious being that we 
+            can never be sure that a transaction is successful until we commit it&#8212;but by the 
+            time the "open session in view" transaction is committed, the view is fully rendered, and 
+            the rendered response may already have been flushed to the client. How can we notify the 
+            user that their transaction was unsuccessful? 
+    	</para>
+
+    	<para>
+            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:
+    	</para>
+
+    	<itemizedlist>
+    		<listitem>
+    			<para>
+                    use an extended persistence context that is scoped to the conversation, 
+                    instead of to the transaction
+    			</para>
+    		</listitem>
+    		<listitem>
+    			<para>
+                    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
+    			</para>
+    		</listitem>
+    	</itemizedlist>
+
+    	<para>
+            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.
+    	</para>
+
+    	<para>
+            Seam transaction management is useful even if you're using EJB 3.0 
+            container-managed persistence contexts. But it is especially useful
+            if you use Seam outside a Java EE 5 environment, or in any other
+            case where you would use a Seam-managed persistence context.
+    	</para>
+
+    	<section>
+    		<title>Disabling Seam-managed transactions</title>
+
+    		<para>
+                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>:
+    		</para>
+
+    		<programlisting role="XML"><![CDATA[<core:init transaction-management-enabled="false"/>
+        
+<transaction:no-transaction />]]></programlisting>
+
+    	</section>
+
+    	<section>
+    		<title>Configuring a Seam transaction manager</title>
+
+    		<para>
+    			Seam provides a transaction management abstraction for beginning, committing, rolling back, and
+    			synchronizing with a transaction. By default Seam uses a JTA transaction component that integrates with
+    			Container Managed and programmatic EJB transactions. If you are working in a Java EE 5 environment, you
+    			should install the EJB synchronization component in <literal>components.xml</literal>:
+    		</para>
+    	   
+    	   <programlisting role="XML"><![CDATA[<transaction:ejb-transaction />]]></programlisting>
+    	   
+    		<para>
+    			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:
+    		</para>
+    		<itemizedlist>
+    			<listitem>
+    			   <para>
+    				   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.
+    				</para>
+    			</listitem>
+    			<listitem>
+    			   <para>
+    				   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.
+    			   </para>
+    			</listitem>
+    			<listitem>
+    			   <para>
+    				   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.
+    			   </para>
+    			</listitem>
+                <listitem>
+                   <para>
+                      Explicitly disable Seam managed transactions
+                   </para>
+                </listitem>
+    		</itemizedlist>
+    		<para>
+    			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
+    			<xref linkend="persistence.seam-managed-persistence-contexts"/>Seam-managed persistence contexts)
+		</para>
+    		<programlisting role="XML"><![CDATA[<transaction:entity-transaction entity-manager="#{em}"/>]]></programlisting>
+    		<para>
+    			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
+    			<xref linkend="persistence.seam-managed-persistence-contexts"/>Seam-managed persistence contexts)
+    		</para>
+    		<programlisting role="XML"><![CDATA[<transaction:hibernate-transaction session="#{hibernateSession}"/>]]></programlisting>
+            <para>
+                To explicitly disable Seam managed transactions declare the following in your components.xml:
+              </para>
+              <programlisting role="XML"><![CDATA[<transaction:no-transaction />]]></programlisting>
+    		<para>
+    			For configuring Spring managed transactions see
+    			<xref linkend="spring-transactions"/>using Spring PlatformTransactionManagement.
+    			.
+    		</para>
+    	</section>
+    	<section>
+    		<title>Transaction synchronization</title>
+
+    		<para>
+    			Transaction synchronization provides callbacks for transaction related events
+    			such as <literal>beforeCompletion()</literal> and <literal>afterCompletion()</literal>.
+                By default, Seam uses it's own transaction synchronization component which requires explicit use of the
+    			Seam transaction component when committing a transaction to ensure synchronization callbacks are
+    			correctly executed. If in a Java EE 5 environment the
+    			<literal>&lt;transaction:ejb-transaction/&gt;</literal>
+    			component should be be declared in <literal>components.xml</literal> to ensure that Seam synchronization callbacks are
+    			correctly called if the container commits a transaction outside of Seam's knowledge.
+    		</para>
+    	</section>
+    </section>
+
+    <section id="persistence.seam-managed-persistence-contexts">
+        <title>Seam-managed persistence contexts</title>
+
+        <para>
+            If you're using Seam outside of a Java EE 5 environment, you can't rely upon the
+            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.
+        </para>
+        
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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.)
+        </para>
+        
+        <section>
+        <title>Using a Seam-managed persistence context with JPA</title>
+        
+        <para>
+            Configuring a managed persistence context is easy. In <literal>components.xml</literal>, 
+            we can write:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<persistence:managed-persistence-context name="bookingDatabase" 
+                                  auto-create="true"
+                   persistence-unit-jndi-name="java:/EntityManagerFactories/bookingData"/>]]></programlisting>
+
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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>.
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<property name="jboss.entity.manager.factory.jndi.name" 
+          value="java:/EntityManagerFactories/bookingData"/>]]></programlisting>
+        
+        <para>
+            Now we can have our <literal>EntityManager</literal> injected using:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@In EntityManager bookingDatabase;]]></programlisting>
+        
+        <para>
+            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.
+        </para>
+                
+    </section>
+
+    <section>
+        <title>Using a Seam-managed Hibernate session</title>
+                
+        <para>
+            Seam-managed Hibernate sessions are similar. In <literal>components.xml</literal>:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<persistence:hibernate-session-factory name="hibernateSessionFactory"/>
+
+<persistence:managed-hibernate-session name="bookingDatabase" 
+                                auto-create="true"
+                  session-factory-jndi-name="java:/bookingSessionFactory"/>]]></programlisting>
+
+        <para>
+            Where <literal>java:/bookingSessionFactory</literal> is the name of the session factory 
+            specified in <literal>hibernate.cfg.xml</literal>. 
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<session-factory name="java:/bookingSessionFactory">
+    <property name="transaction.flush_before_completion">true</property>
+    <property name="connection.release_mode">after_statement</property>
+    <property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
+    <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
+    <property name="connection.datasource">java:/bookingDatasource</property>
+    ...
+</session-factory>]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            We can now have a managed Hibernate <literal>Session</literal> injected into our
+            JavaBean components using the following code:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In Session bookingDatabase;]]></programlisting>
+
+    </section>
+            
+    <section>
+        <title>Seam-managed persistence contexts and atomic conversations</title>
+        <para>
+            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>.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In EntityManager em; //a Seam-managed persistence context
+
+ at Begin(flushMode=MANUAL)
+public void beginClaimWizard() {
+    claim = em.find(Claim.class, claimId);
+}]]></programlisting>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[public void addPartyToClaim() {
+    Party party = ....;
+    claim.addParty(party);
+}]]></programlisting>
+
+        <para>
+            But these changes will not be flushed to the database until we explicitly force
+            the flush to occur:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@End
+public void commitClaim() {
+    em.flush();
+}]]></programlisting>
+
+         <para>
+            Of course, you could set the <literal>flushMode</literal> to <literal>MANUAL</literal>
+            from pages.xml, for example in a navigation rule:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<begin-conversation flush-mode="MANUAL" />]]></programlisting>
+
+    </section>
+
+    </section>
+    
+    <section>
+        <title>Using the JPA "delegate"</title>
+        
+        <para>
+            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
+            <xref linkend="alt-jpa-providers"/>Using Alternate JPA Providers.
+        </para>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In EntityManager entityManager;
+
+ at Create
+public void init() {
+    ( (Session) entityManager.getDelegate() ).enableFilter("currentVersions");
+}]]></programlisting>
+
+        <para>
+             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>:
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<factory name="session" 
+         scope="STATELESS" 
+         auto-create="true" 
+         value="#{entityManager.delegate}"/>]]></programlisting>
+        
+        <para>
+            Now we can inject the session directly:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[@In Session session;
+
+ at Create
+public void init() {
+    session.enableFilter("currentVersions");
+}]]></programlisting>
+
+    </section>
+    
+    <section>
+        <title>Using EL in EJB-QL/HQL</title>
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[User user = em.createQuery("from User where username=#{user.username}")
+         .getSingleResult();]]></programlisting>
+         
+        <para>is equivalent to:</para>
+         
+        <programlisting role="JAVA"><![CDATA[User user = em.createQuery("from User where username=:username")
+         .setParameter("username", user.getUsername())
+         .getSingleResult();]]></programlisting>
+         
+        <para>
+            Of course, you should never, ever write it like this:
+        </para>
+        
+        <programlisting role="JAVA"><![CDATA[User user = em.createQuery("from User where username=" + user.getUsername()) //BAD!
+         .getSingleResult();]]></programlisting>
+         
+        <para>
+            (It is inefficient and vulnerable to SQL injection attacks.)
+        </para>
+        
+    </section>
+    
+    <section>
+        <title>Using Hibernate filters</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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.)
+        </para>
+        
+        <programlisting role="XML"><![CDATA[<persistence:filter name="regionFilter">
+    <persistence:name>region</persistence:name>
+    <persistence:parameters>
+        <key>regionCode</key>
+        <value>#{region.code}</value>
+    </persistence:parameters>
+</persistence:filter>
+
+<persistence:filter name="currentFilter">
+    <persistence:name>current</persistence:name>
+    <persistence:parameters>
+        <key>date</key>
+        <value>#{currentDate}</value>
+    </persistence:parameters>
+</persistence:filter>
+
+<persistence:managed-persistence-context name="personDatabase"
+    persistence-unit-jndi-name="java:/EntityManagerFactories/personDatabase">
+    <core:filters>
+        <value>#{regionFilter}</value>
+        <value>#{currentFilter}</value>
+    </core:filters>
+</persistence:managed-persistence-context>]]></programlisting>
+        
+    </section>    
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Persistence.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Preface.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Preface.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Preface.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,287 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+
+<preface id="Book-Preface">
+        <title>Introduction to JBoss Seam</title>
+
+        <para>
+            Seam is an application framework for Enterprise Java. It is inspired by the following principles:
+        </para>
+
+        <variablelist>
+        
+            <varlistentry>
+                <term><emphasis>One kind of "stuff"</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        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&#8212;the difference
+                        is that <emphasis>you</emphasis> get to architect your own application and decide what the
+                        layers are and how they work together.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Integrate JSF with EJB 3.0</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        Seam unifies the component models of JSF and EJB3, eliminating glue code, and letting
+                        the developer think about the business problem.
+                    </para>
+                    <para>
+                        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&#8212;nothing 
+                        more complex than an annotated JavaBean. Seam even encourages you to use session beans 
+                        as JSF action listeners!                    
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Integrated AJAX</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    
+                    <note>
+        				<title>Technology preview </title>    
+    					<para>Icefaces integration in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+    				</note>
+    				
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Business process as a first class construct</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        Seam even allows you to define presentation tier pageflow using the same language (jPDL)
+                        that jBPM uses for business process definition.
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Declarative state management</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        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&#8212;request, session, application&#8212;with two new
+                        contexts&#8212;conversation and business process&#8212;that are more meaningful from the
+                        point of view of the business logic.
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Bijection</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        <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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Workspace management and multi-window browsing</emphasis></term>
+                <listitem>
+                    <para>
+                        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!
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Prefer annotations to XML</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                    <para>
+                        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).
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>Integration testing is easy</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>The specs ain't perfect</emphasis></term>
+                <listitem>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+            
+            <varlistentry>
+                <term><emphasis>There's more to a web application than serving HTML pages</emphasis></term>
+                <listitem>
+                    <para>
+                        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...
+                    </para>
+                    <para>
+                        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.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="images/architecture.png"/>
+          </imageobject>
+        </mediaobject>
+
+        <para>
+            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!
+        </para>
+
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+    </preface>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Preface.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Remoting.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Remoting.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Remoting.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,759 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="remoting">
+  <title>Remoting</title>
+  <para> 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. </para>
+
+  <section>
+    <title>Configuration</title>
+    <para> To use remoting, the Seam Resource servlet must first be configured in your <literal>web.xml</literal> file: </para>
+
+    <programlisting role="XML"><![CDATA[<servlet>
+  <servlet-name>Seam Resource Servlet</servlet-name>
+  <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+</servlet>
+
+<servlet-mapping>
+  <servlet-name>Seam Resource Servlet</servlet-name>
+  <url-pattern>/seam/resource/*</url-pattern>
+</servlet-mapping>]]></programlisting>
+
+    <para> 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: </para>
+
+    <programlisting role="XHTML"><![CDATA[<script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script>]]></programlisting>
+
+    <para> 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: </para>
+
+    <programlisting role="XHTML"><![CDATA[<script type="text/javascript" 
+          src="seam/resource/remoting/interface.js?customerAction"></script>]]></programlisting>
+
+    <para> If you wish to access more than one component from the same page, then include them all as parameters of your
+      script tag: </para>
+
+    <programlisting role="XHTML"><![CDATA[<script type="text/javascript" 
+        src="seam/resource/remoting/interface.js?customerAction&accountAction"></script>]]></programlisting>
+        
+        
+    <para>
+      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: 
+    </para>
+    
+    <programlisting role="XHTML"><![CDATA[
+  <s:remote include="customerAction,accountAction"/>    
+    ]]></programlisting>
+
+  </section>
+
+  <section>
+    <title>The "Seam" object</title>
+
+    <para> 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. </para>
+
+    <section>
+      <title>A Hello World example</title>
+
+      <para> 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>. </para>
+
+      <programlisting role="JAVA"><![CDATA[@Stateless
+ at Name("helloAction")
+public class HelloAction implements HelloLocal {
+    public String sayHello(String name) {
+        return "Hello, " + name;
+    }
+}]]></programlisting>
+
+      <para>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:</para>
+
+      <programlisting role="JAVA"><![CDATA[@Local
+public interface HelloLocal {
+  @WebRemote
+  public String sayHello(String name);
+}]]></programlisting>
+
+      <para> 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: </para>
+
+      <programlisting role="XHTML"><![CDATA[<s:remote include="helloAction"/>]]></programlisting>
+
+      <para> To make this a fully interactive user experience, let's add a button to our page: </para>
+
+      <programlisting role="XHTML"><![CDATA[<button onclick="javascript:sayHello()">Say Hello</button>]]></programlisting>
+
+      <para> We'll also need to add some more script to make our button actually do something when it's clicked: </para>
+
+      <programlisting role="XHTML"><![CDATA[<script type="text/javascript">
+  //<![CDATA[
+
+  function sayHello() {
+    var name = prompt("What is your name?");
+    Seam.Component.getInstance("helloAction").sayHello(name, sayHelloCallback);
+  }
+
+  function sayHelloCallback(result) {
+    alert(result);
+  }
+
+   // ]]>]]&gt;<![CDATA[
+</script>]]></programlisting>
+
+      <para> 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. </para>
+
+      <para> 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: </para>
+
+      <programlisting role="XHTML">Seam.Component.getInstance("helloAction").sayHello(name, sayHelloCallback);</programlisting>
+
+      <para> 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>. </para>
+
+      <para> 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. </para>
+
+      <para> 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. </para>
+
+    </section>
+
+    <section>
+      <title>Seam.Component</title>
+
+      <para> 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. </para>
+
+      <section>
+        <title>Seam.Component.newInstance()</title>
+        <para> 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: </para>
+
+        <programlisting role="JAVA">@Name("customer")
+ at Entity
+public class Customer implements Serializable
+{
+  private Integer customerId;
+  private String firstName;
+  private String lastName;
+    
+  @Column public Integer getCustomerId() { 
+    return customerId; 
+  }
+    
+  public void setCustomerId(Integer customerId} { 
+    this.customerId = customerId; 
+  }
+  
+  @Column public String getFirstName() { 
+    return firstName; 
+  }
+  
+  public void setFirstName(String firstName) {
+    this.firstName = firstName; 
+  }
+  
+  @Column public String getLastName() {
+    return lastName;
+  }
+  
+  public void setLastName(String lastName) {
+    this.lastName = lastName;
+  }
+}</programlisting>
+
+        <para> To create a client-side Customer you would write the following code: </para>
+
+        <programlisting role="XHTML">var customer = Seam.Component.newInstance("customer");</programlisting>
+
+        <para> Then from here you can set the fields of the customer object: </para>
+
+        <programlisting role="XHTML">customer.setFirstName("John");
+// Or you can set the fields directly
+customer.lastName = "Smith";</programlisting>
+
+      </section>
+
+      <section>
+        <title>Seam.Component.getInstance()</title>
+
+        <para> 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. </para>
+
+        <para> 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: </para>
+
+        <programlisting role="XHTML">Seam.Component.getInstance("customerAction").saveCustomer(customer);</programlisting>
+      </section>
+
+      <section>
+        <title>Seam.Component.getComponentName()</title>
+
+        <para> Passing an object into this method will return its component name if it is a component, or
+          <literal>null</literal> if it is not. </para>
+
+        <programlisting role="XHTML">if (Seam.Component.getComponentName(instance) == "customer")
+  alert("Customer");
+else if (Seam.Component.getComponentName(instance) == "staff")
+  alert("Staff member");</programlisting>
+      </section>
+
+    </section>
+
+    <section>
+      <title>Seam.Remoting</title>
+
+      <para> 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. </para>
+
+      <section>
+        <title>Seam.Remoting.createType()</title>
+
+        <para> 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: </para>
+
+        <programlisting role="XHTML">var widget = Seam.Remoting.createType("com.acme.widgets.MyWidget");</programlisting>
+      </section>
+
+      <section>
+        <title>Seam.Remoting.getTypeName()</title>
+
+        <para> 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. </para>
+      </section>
+    </section>
+  </section>
+  
+  <section>
+    <title>Evaluating EL Expressions</title>
+    
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="XHTML"><![CDATA[  function customersCallback(customers) {
+    for (var i = 0; i < customers.length; i++) {
+      alert("Got customer: " + customers[i].getName());
+    }    
+  }
+    
+  Seam.Remoting.eval("#{customers}", customersCallback);  
+    ]]></programlisting>
+    
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="XHTML"><![CDATA[<s:remote include="customer"/>]]></programlisting>
+  </section>
+
+  <section>
+    <title>Client Interfaces</title>
+
+    <para> 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:
+    </para>
+
+    <programlisting role="XHTML"><![CDATA[<script type="text/javascript" 
+        src="seam/resource/remoting/interface.js?customerAction"></script>]]></programlisting>
+        
+    <programlisting role="XHTML"><![CDATA[<s:remote include="customerAction"/>]]></programlisting>
+
+    <para> 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. </para>
+
+    <para> 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. </para>
+
+    <para> 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. </para>
+
+  </section>
+
+  <section>
+    <title>The Context</title>
+
+    <para> 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. </para>
+
+    <section>
+      <title>Setting and reading the Conversation ID</title>
+
+
+    <para> 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>. </para>
+
+    <para> 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. </para>
+    </section>      
+    <section>
+      <title>Remote calls within the current conversation scope</title>
+      
+      <para> 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: </para>
+        
+      <programlisting role="XHTML"><![CDATA[Seam.Remoting.getContext().setConversationId( #{conversation.id} );]]></programlisting>
+    </section>
+  </section>
+
+  <section>
+    <title>Batch Requests</title>
+
+    <para> 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. </para>
+
+    <para> 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. </para>
+
+    <para> 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. </para>
+
+    <para> To see an example of a batch being used, take a look at <literal>/examples/remoting/chatroom</literal>.
+    </para>
+  </section>
+
+  <section>
+    <title>Working with Data types</title>
+
+    <section>
+      <title>Primitives / Basic Types</title>
+
+      <para> 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. </para>
+
+      <section>
+        <title>String</title>
+
+        <para> Simply use Javascript String objects when setting String parameter values. </para>
+      </section>
+
+      <section>
+        <title>Number</title>
+
+        <para> 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. </para>
+      </section>
+
+      <section>
+        <title>Boolean</title>
+
+        <para> Booleans are represented client side by Javascript Boolean values, and server side by a Java boolean.
+        </para>
+      </section>
+    </section>
+
+    <section>
+      <title>JavaBeans</title>
+
+      <para> 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. </para>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@Name("myAction")
+public class MyAction implements MyActionLocal {
+  public void doSomethingWithObject(Object obj) {
+    // code
+  }
+}</programlisting>
+
+      <para> 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: </para>
+
+      <programlisting role="XHTML"><![CDATA[<s:remote include="myAction,myWidget"/>]]></programlisting>
+
+      <para> 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>. </para>
+
+    </section>
+
+    <section>
+      <title>Dates and Times</title>
+
+      <para> 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. </para>
+    </section>
+
+    <section>
+      <title>Enums</title>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@Name("paintAction")
+public class paintAction implements paintLocal {
+  public enum Color {red, green, blue, yellow, orange, purple};
+
+  public void paint(Color color) {
+    // code
+  }    
+} </programlisting>
+
+      <para> To call the <literal>paint()</literal> method with the color <literal>red</literal>, pass the parameter
+        value as a String literal: </para>
+
+      <programlisting role="XHTML">Seam.Component.getInstance("paintAction").paint("red");</programlisting>
+
+      <para> 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. </para>
+    </section>
+
+    <section>
+      <title>Collections</title>
+
+      <section>
+        <title>Bags</title>
+
+        <para> 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. </para>
+      </section>
+
+      <section>
+        <title>Maps</title>
+
+        <para> 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: </para>
+
+        <programlisting role="XHTML">var map = new Seam.Remoting.Map();</programlisting>
+
+        <para> 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). </para>
+      </section>
+    </section>
+  </section>
+
+  <section>
+    <title>Debugging</title>
+
+    <para> 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: </para>
+
+    <programlisting role="XHTML">Seam.Remoting.setDebug(true);</programlisting>
+
+    <para> Or configure it via components.xml: </para>
+
+    <programlisting role="XML"><![CDATA[<remoting:remoting debug="true"/>]]></programlisting>
+
+    <para> 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>. </para>
+  </section>
+
+  <section>
+    <title>The Loading Message</title>
+
+    <para> 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. </para>
+
+    <section>
+      <title>Changing the message</title>
+
+      <para> To change the message from the default "Please Wait..." to something different, set the value of
+          <literal>Seam.Remoting.loadingMessage</literal>: </para>
+
+      <programlisting role="XHTML">Seam.Remoting.loadingMessage = "Loading..."; </programlisting>
+    </section>
+
+    <section>
+      <title>Hiding the loading message</title>
+
+      <para> 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: </para>
+
+      <programlisting role="XHTML">// don't display the loading indicator
+Seam.Remoting.displayLoadingMessage = function() {};
+Seam.Remoting.hideLoadingMessage = function() {};</programlisting>
+    </section>
+
+    <section>
+      <title>A Custom Loading Indicator</title>
+
+      <para> 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: </para>
+
+      <programlisting role="XHTML">  Seam.Remoting.displayLoadingMessage = function() {
+    // Write code here to display the indicator
+  };
+  
+  Seam.Remoting.hideLoadingMessage = function() {
+    // Write code here to hide the indicator
+  };</programlisting>
+    </section>
+  </section>
+
+  <section>
+    <title>Controlling what data is returned</title>
+
+    <para> 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. </para>
+
+    <para> 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. </para>
+
+    <para> For all our examples, we'll use the following <literal>Widget</literal> class: </para>
+
+    <programlisting role="JAVA">@Name("widget")
+public class Widget
+{
+  private String value;
+  private String secret;
+  private Widget child;
+  private Map&lt;String,Widget&gt; widgetMap;
+  private List&lt;Widget&gt; widgetList;
+  
+  // getters and setters for all fields
+}</programlisting>
+
+    <section>
+      <title>Constraining normal fields</title>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"secret"})
+public Widget getWidget(); </programlisting>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"child.secret"})
+public Widget getWidget();</programlisting>
+
+    </section>
+
+    <section>
+      <title>Constraining Maps and Collections</title>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"widgetList.secret"})
+public Widget getWidget();</programlisting>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"widgetMap[value].secret"})
+public Widget getWidget(); </programlisting>
+    </section>
+
+    <section>
+      <title>Constraining objects of a specific type</title>
+
+      <para> 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: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"[widget].secret"})
+public Widget getWidget(); </programlisting>
+
+    </section>
+
+    <section>
+      <title>Combining Constraints</title>
+
+      <para> Constraints can also be combined, to filter objects from multiple paths within the object graph: </para>
+
+      <programlisting role="JAVA">@WebRemote(exclude = {"widgetList.secret", "widgetMap[value].secret"})
+public Widget getWidget();</programlisting>
+    </section>
+
+  </section>
+
+  <section>
+    <title>JMS Messaging</title>
+
+    <para> 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. </para>
+
+    <section>
+      <title>Configuration</title>
+
+      <para> 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>. </para>
+
+      <programlisting role="XML"><![CDATA[<remoting:remoting poll-timeout="5" poll-interval="1"/>]]></programlisting>
+
+    </section>
+
+    <section>
+      <title>Subscribing to a JMS Topic</title>
+
+      <para> The following example demonstrates how to subscribe to a JMS Topic: </para>
+
+      <programlisting role="XHTML">function subscriptionCallback(message)
+{
+  if (message instanceof Seam.Remoting.TextMessage)
+    alert("Received message: " + message.getText());
+}           
+
+Seam.Remoting.subscribe("topicName", subscriptionCallback);</programlisting>
+
+      <para> 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. </para>
+
+      <para> 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). </para>
+    </section>
+
+    <section>
+      <title>Unsubscribing from a Topic</title>
+
+      <para> To unsubscribe from a topic, call <literal>Seam.Remoting.unsubscribe()</literal> and pass in the topic
+        name: </para>
+
+      <programlisting role="XHTML">Seam.Remoting.unsubscribe("topicName");</programlisting>
+    </section>
+
+    <section>
+      <title>Tuning the Polling Process</title>
+
+      <para> 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. </para>
+
+      <para> 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. </para>
+
+      <para> 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. </para>
+
+      <para> 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: </para>
+
+      <para> Via components.xml: </para>
+
+      <programlisting role="XML"><![CDATA[<remoting:remoting poll-timeout="5" poll-interval="1"/>]]></programlisting>    
+
+      <para> Via JavaScript: </para>
+
+      <programlisting role="XHTML">// Only wait 1 second between receiving a poll response and sending the next poll request.
+Seam.Remoting.pollInterval = 1;
+  
+// Wait up to 5 seconds on the server for new messages
+Seam.Remoting.pollTimeout = 5;   </programlisting>
+
+    </section>
+
+  </section>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Remoting.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Revision_History.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Revision_History.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE revhistory PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+<revhistory>
+	
+<revision>
+		<revnumber>5.0.0</revnumber>
+		<date>Feb 07 2008</date>
+		<author>
+			<firstname>Samson</firstname>
+			<surname>Kittoli</surname>
+			<email></email>
+		</author>
+		<revdescription>
+			<simplelist>
+				<member>content reformat</member>
+
+			</simplelist>
+		</revdescription>
+	</revision>
+</revhistory>
+</simpara>
+</appendix>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Revision_History.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.ent
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.ent	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.ent	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,3 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0_CP07">

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"  [ ]>
+
+<book>
+    <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
+   <xi:include href="Tutorial.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Gettingstarted.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Getting_Started_With_JBoss_Tools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Migration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Xml.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Events.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Conversations.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Jbpm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Persistence.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Validation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Groovy.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Framework.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Drools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "I18n.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
+    <xi:include href= "Text.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Itext.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Mail.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Jms.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Cache.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Webservices.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Remoting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Spring.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Hsearch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Annotations.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Components.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Controls.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Elenhancements.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Testing.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Tools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Dependencies.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</book>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Seam2_Reference_Guide_CP07.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Security.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Security.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Security.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1626 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<chapter id="security">
+  <title>Security</title>
+
+  <para>
+    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.
+  </para>
+
+  <sect1>
+    <title>Overview</title>
+
+    <para>
+      Seam Security provides two different modes of operation:
+    </para>
+
+    <itemizedlist>
+      <listitem>
+        <para>
+          <emphasis>simplified mode</emphasis> - this mode supports authentication services
+          and simple role-based security checks.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <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.
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <sect2>
+      <title>Which mode is right for my application?</title>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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.
+      </para>
+    </sect2>
+  </sect1>
+
+  <sect1>
+    <title>Requirements</title>
+
+    <para>
+      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:
+    </para>
+
+    <itemizedlist>
+      <listitem>
+        <para>drools-compiler.jar</para>
+      </listitem>
+      <listitem>
+        <para>drools-core.jar</para>
+      </listitem>
+      <listitem>
+        <para>janino.jar</para>
+      </listitem>
+      <listitem>
+        <para>antlr-runtime.jar</para>
+      </listitem>
+      <listitem>
+        <para>mvel14.jar</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>
+      For web-based security, <literal>jboss-seam-ui.jar</literal> must also be included in the application's war file.
+    </para>
+
+
+  </sect1>
+
+  <sect1>
+    <title>Disabling Security</title>
+
+    <para>
+      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:
+    </para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Entity Security</para>
+      </listitem>
+      <listitem>
+        <para>Hibernate Security Interceptor</para>
+      </listitem>
+      <listitem>
+        <para>Seam Security Interceptor</para>
+      </listitem>
+      <listitem>
+        <para>Page restrictions</para>
+      </listitem>
+    </itemizedlist>
+  </sect1>
+
+  <sect1>
+    <title>Authentication</title>
+
+    <para>
+      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.
+    </para>
+
+    <sect2>
+      <title>Configuration</title>
+
+      <para>
+        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>:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:core="http://jboss.com/products/seam/core"
+            xmlns:security="http://jboss.com/products/seam/security"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation=
+                "http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd
+                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd">
+
+    <security:identity authenticate-method="#{authenticator.authenticate}"/>
+
+</components>]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Writing an authentication method</title>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[@Name("authenticator")
+public class Authenticator {
+   @In EntityManager entityManager;
+
+   public boolean authenticate() {
+      try
+      {
+         User user = (User) entityManager.createQuery(
+            "from User where username = :username and password = :password")
+            .setParameter("username", Identity.instance().getUsername())
+            .setParameter("password", Identity.instance().getPassword())
+            .getSingleResult();
+
+         if (user.getRoles() != null)
+         {
+            for (UserRole mr : user.getRoles())
+               Identity.instance().addRole(mr.getName());
+         }
+
+         return true;
+      }
+      catch (NoResultException ex)
+      {
+         return false;
+      }
+
+   }
+
+}]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <sect3>
+        <title>Identity.addRole()</title>
+
+        <para>
+          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.
+
+        </para>
+
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/security-addrole.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/security-addrole.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+
+      </sect3>
+
+      <sect3>
+        <title>Special Considerations</title>
+
+        <para>
+          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.
+        </para>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[   @In UserStats userStats;
+
+   @Observer("org.jboss.seam.security.loginSuccessful")
+   public void updateUserStats()
+   {
+      userStats.setLastLoginDate(new Date());
+      userStats.incrementLoginCount();
+   }]]></programlisting>
+      </sect3>
+
+    </sect2>
+
+    <sect2>
+      <title>Writing a login form</title>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<div>
+    <h:outputLabel for="name" value="Username"/>
+    <h:inputText id="name" value="#{identity.username}"/>
+</div>
+
+<div>
+    <h:outputLabel for="password" value="Password"/>
+    <h:inputSecret id="password" value="#{identity.password}"/>
+</div>
+
+<div>
+    <h:commandButton value="Login" action="#{identity.login}"/>
+</div>]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Simplified Configuration - Summary</title>
+      <para>
+        So to sum up, there are the three easy steps to configure authentication:
+      </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            Configure an authentication method in <literal>components.xml</literal>.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Write an authentication method.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Write a login form so that the user can authenticate.
+          </para>
+        </listitem>
+      </itemizedlist>
+
+    </sect2>
+
+    <sect2>
+      <title>Handling Security Exceptions</title>
+
+      <para>
+        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:
+      </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>NotLoggedInException</literal> - This exception is thrown if the user attempts to access a
+            restricted action or page when they are not logged in.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <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.
+          </para>
+        </listitem>
+      </itemizedlist>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<pages>
+
+    ...
+
+    <exception class="org.jboss.seam.security.NotLoggedInException">
+        <redirect view-id="/login.xhtml">
+            <message>You must be logged in to perform this action</message>
+        </redirect>
+    </exception>
+
+    <exception class="org.jboss.seam.security.AuthorizationException">
+        <end-conversation/>
+        <redirect view-id="/security_error.xhtml">
+            <message>You do not have the necessary security privileges to perform this action.</message>
+        </redirect>
+    </exception>
+
+</pages>]]></programlisting>
+
+      <para>
+        Most web applications require even more sophisticated handling of login redirection, so
+        Seam includes some special functionality for handling this problem.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Login Redirection</title>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<pages login-view-id="/login.xhtml">
+
+    <page view-id="/members/*" login-required="true"/>
+
+    ...
+
+</pages>]]></programlisting>
+
+      <para>
+        (This is less of a blunt instrument than the exception handler shown above, but should
+        probably be used in conjunction with it.)
+      </para>
+
+      <para>
+        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.
+      </para>
+
+      <programlisting role="XML"><![CDATA[<event type="org.jboss.seam.security.notLoggedIn">
+    <action execute="#{redirect.captureCurrentView}"/>
+</event>
+
+<event type="org.jboss.seam.security.postAuthenticate">
+    <action execute="#{redirect.returnToCapturedView}"/>
+</event>]]></programlisting>
+
+      <para>
+        Note that login redirection is implemented as a conversation-scoped mechanism, so don't end
+        the conversation in your <literal>authenticate()</literal> method.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>HTTP Authentication</title>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XML"><![CDATA[
+  <web:authentication-filter url-pattern="*.seam" auth-type="basic"/>
+      ]]></programlisting>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XML"><![CDATA[
+  <web:authentication-filter url-pattern="*.seam" auth-type="digest" key="AA3JK34aSDlkj" realm="My App"/>
+      ]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <sect3>
+        <title>Writing a Digest Authenticator</title>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[
+   public boolean authenticate()
+   {
+      try
+      {
+         User user = (User) entityManager.createQuery(
+            "from User where username = :username")
+            .setParameter("username", identity.getUsername())
+            .getSingleResult();
+
+         return validatePassword(user.getPassword());
+      }
+      catch (NoResultException ex)
+      {
+         return false;
+      }
+   }
+        ]]></programlisting>
+      </sect3>
+
+    </sect2>
+
+    <sect2>
+      <title>Advanced Authentication Features</title>
+
+      <para>
+        This section explores some of the advanced features provided by the security API for addressing more complex
+        security requirements.
+      </para>
+
+      <sect3>
+        <title>Using your container's JAAS configuration</title>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<security:identity jaas-config-name="other"/>]]></programlisting>
+                      
+        <para>
+          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.
+        </para>
+      </sect3>
+
+    </sect2>
+
+  </sect1>
+
+  <sect1>
+    <title>Error Messages</title>
+
+    <para>
+      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.
+    </para>
+
+    <table>
+      <title>Security Message Keys</title>
+
+      <tgroup cols="2">
+    <!--    <colspec colnum="1" colwidth="2*" />
+        <colspec colnum="2" colwidth="3*" /> -->
+
+        <thead>
+          <row>
+            <entry align="center">
+              <para>Message Key</para>
+            </entry>
+            <entry align="center">
+              <para>Description</para>
+            </entry>
+          </row>
+        </thead>
+
+        <tbody>
+
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.loginSuccessful</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                This message is produced when a user successfully logs in via the security API.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.loginFailed</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                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.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.NotLoggedIn</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                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.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.AlreadyLoggedIn</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                This message is produced when a user that is already authenticated attempts to log in again.
+              </para>
+            </entry>
+          </row>          
+        </tbody>
+      </tgroup>
+    </table>
+  </sect1>
+
+  <sect1>
+    <title>Authorization</title>
+
+    <para>
+      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.
+    </para>
+
+    <sect2>
+      <title>Core concepts</title>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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>.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Securing components</title>
+
+      <para>
+        Let's start by examining the simplest form of authorization, component security, starting with the
+        <literal>@Restrict</literal> annotation.
+      </para>
+
+      <sect3>
+        <title>The @Restrict annotation</title>
+
+        <para>
+          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.
+        </para>
+
+        <para>
+          An empty <literal>@Restrict</literal> implies a permission check of <literal>componentName:methodName</literal>.
+          Take for example the following component method:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("account")
+public class AccountAction {
+    @Restrict public void delete() {
+      ...
+    }
+}]]></programlisting>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Restrict @Name("account")
+public class AccountAction {
+    public void insert() {
+      ...
+    }
+    @Restrict("#{s:hasRole('admin')}")
+    public void delete() {
+      ...
+    }
+}]]></programlisting>
+
+        <para>
+          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.
+        </para>
+
+        <para>
+          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.
+        </para>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[@Name("account")
+public class AccountAction {
+    @In Account selectedAccount;
+    @Restrict("#{s:hasPermission('account','modify',selectedAccount)}")
+    public void modify() {
+        selectedAccount.modify();
+    }
+}]]></programlisting>
+
+        <para>
+          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.
+        </para>
+      </sect3>
+
+      <sect3>
+        <title>Inline restrictions</title>
+        <para>
+          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:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[public void deleteCustomer() {
+    Identity.instance().checkRestriction("#{s:hasPermission('customer','delete',selectedCustomer)}");
+}]]></programlisting>
+
+        <para>
+          If the expression specified doesn't evaluate to <literal>true</literal>, either
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    if the user is not logged in, a <literal>NotLoggedInException</literal>
+                    exception is thrown or
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    if the user is logged in, an <literal>AuthorizationException</literal>
+                    exception is thrown.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+          It is also possible to call the <literal>hasRole()</literal> and <literal>hasPermission()</literal>
+          methods directly from Java code:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[if (!Identity.instance().hasRole("admin"))
+     throw new AuthorizationException("Must be admin to perform this action");
+
+if (!Identity.instance().hasPermission("customer", "create", null))
+     throw new AuthorizationException("You may not create new customers");]]></programlisting>
+
+      </sect3>
+    </sect2>
+
+    <sect2>
+      <title>Security in the user interface</title>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<h:form class="loginForm" rendered="#{not identity.loggedIn}">]]></programlisting>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<h:outputLink action="#{reports.listManagerReports}" rendered="#{s:hasRole('manager')}">
+    Manager Reports
+</h:outputLink>]]></programlisting>
+
+      <para>
+        This is also quite straight forward.  If the user is not a member of the <literal>manager</literal>
+        role, then the outputLink will not be rendered. The <literal>rendered</literal> attribute can
+        generally be used on the control itself, or on a surrounding <literal>&lt;s:div&gt;</literal> or
+        <literal>&lt;s:span&gt;</literal> control.
+      </para>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<h:dataTable value="#{clients}" var="cl">
+    <h:column>
+        <f:facet name="header">Name</f:facet>
+        #{cl.name}
+    </h:column>
+    <h:column>
+        <f:facet name="header">City</f:facet>
+        #{cl.city}
+    </h:column>
+    <h:column>
+        <f:facet name="header">Action</f:facet>
+        <s:link value="Modify Client" action="#{clientAction.modify}"
+                rendered="#{s:hasPermission('client','modify',cl)"/>
+        <s:link value="Delete Client" action="#{clientAction.delete}"
+                rendered="#{s:hasPermission('client','delete',cl)"/>
+    </h:column>
+</h:dataTable>]]></programlisting>
+
+    </sect2>
+
+    <sect2>
+      <title>Securing pages</title>
+      <para>
+        Page security requires that the application is using a <literal>pages.xml</literal> file, however is
+        extremely simple to configure.  Simply include a <literal>&lt;restrict/&gt;</literal> element within
+        the <literal>page</literal> elements that you wish to secure.  If no explicit restriction is specified
+        by the <literal>restrict</literal> element, an implied permission of <literal>/viewId.xhtml:render</literal>
+        will be checked when the page is accessed via a non-faces (GET) request, and a permission of
+        <literal>/viewId.xhtml:restore</literal> will be required when any JSF postback (form submission) originates
+        from the page.  Otherwise, the specified restriction will be evaluated as a standard security expression.
+        Here's a couple of examples:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<page view-id="/settings.xhtml">
+    <restrict/>
+</page>]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <programlisting role="XML"><![CDATA[<page view-id="/reports.xhtml">
+    <restrict>#{s:hasRole('admin')}</restrict>
+</page>]]></programlisting>
+
+      <para>
+        Both faces and non-faces requests to this page require that the user is a member of the
+        <literal>admin</literal> role.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Securing Entities</title>
+
+      <para>
+        Seam security also makes it possible to apply security restrictions to read, insert, update and
+        delete actions for entities.
+      </para>
+
+      <para>
+        To secure all actions for an entity class, add a <literal>@Restrict</literal> annotation on the class
+        itself:
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[@Entity
+ at Name("customer")
+ at Restrict
+public class Customer {
+  ...
+}]]></programlisting>
+
+      <para>
+        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>.
+      </para>
+
+      <para>
+        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):
+      </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>@PostLoad</literal> - Called after an entity instance is loaded from the database. Use this
+            method to configure a <literal>read</literal> permission.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>@PrePersist</literal> - Called before a new instance of the entity is inserted. Use this method
+            to configure an <literal>insert</literal> permission.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>@PreUpdate</literal> - Called before an entity is updated. Use this method
+            to configure an <literal>update</literal> permission.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>@PreRemove</literal> - Called before an entity is deleted. Use this method
+            to configure a <literal>delete</literal> permission.
+          </para>
+        </listitem>
+      </itemizedlist>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[
+  @PrePersist @Restrict
+  public void prePersist() {}
+   ]]></programlisting>
+
+      <note>
+         <title>Using <literal>/META-INF/orm.xml</literal></title>
+         
+
+         <para>
+            You can also specify the call back method in <literal>/META-INF/orm.xml</literal>:
+         </para>
+
+         <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
+                 version="1.0">
+
+   <entity class="Customer">
+      <pre-persist method-name="prePersist" />
+   </entity>
+
+</entity-mappings>]]></programlisting>
+
+         <para>
+            Of course, you still need to annotate the <literal>prePersist()</literal>
+            method on <literal>Customer</literal> with <literal>@Restrict</literal>
+         </para>
+      </note>
+
+      <para>
+        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>):
+      </para>
+
+      <programlisting><![CDATA[rule InsertMemberBlog
+  no-loop
+  activation-group "permissions"
+when
+  check: PermissionCheck(name == "memberBlog", action == "insert", granted == false)
+  Principal(principalName : name)
+  MemberBlog(member : member -> (member.getUsername().equals(principalName)))
+then
+  check.grant();
+end;]]></programlisting>
+
+       <para>
+         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.
+       </para>
+
+       <para>
+         Finally, we need to install a listener class that integrates Seam security with
+         your JPA provider.
+       </para>
+
+      <sect3>
+        <title>Entity security with JPA</title>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
+                 version="1.0">
+
+    <persistence-unit-metadata>
+        <persistence-unit-defaults>
+            <entity-listeners>
+                <entity-listener class="org.jboss.seam.security.EntitySecurityListener"/>
+            </entity-listeners>
+        </persistence-unit-defaults>
+    </persistence-unit-metadata>
+
+</entity-mappings>]]></programlisting>
+
+      </sect3>
+
+      <sect3>
+        <title>Entity security with a Managed Hibernate Session</title>
+
+        <para>
+          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.
+        </para>
+
+      </sect3>
+
+    </sect2>
+
+  </sect1>
+
+  <sect1>
+    <title>Writing Security Rules</title>
+
+    <para>
+      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.
+    </para>
+
+    <sect2>
+      <title>Permissions Overview</title>
+
+      <para>
+        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.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Configuring a rules file</title>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:core="http://jboss.com/products/seam/core"
+            xmlns:security="http://jboss.com/products/seam/security"
+            xmlns:drools="http://jboss.com/products/seam/drools"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation=
+                "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
+                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd
+                 http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd"
+                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd">
+
+   <drools:rule-base name="securityRules">
+       <drools:rule-files>
+           <value>/META-INF/security.drl</value>
+       </drools:rule-files>
+   </drools:rule-base>
+
+</components>]]></programlisting>
+
+      <para>
+        Once the <literal>RuleBase</literal> component is configured, it's time to write the security rules.
+      </para>
+    </sect2>
+
+    <sect2>
+      <title>Creating a security rules file</title>
+      <para>
+        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>.
+      </para>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting><![CDATA[package MyApplicationPermissions;
+
+import org.jboss.seam.security.PermissionCheck;
+import org.jboss.seam.security.Role;
+
+rule CanUserDeleteCustomers
+when
+  c: PermissionCheck(name == "customer", action == "delete")
+  Role(name == "admin")
+then
+  c.grant();
+end;]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        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.
+      </para>
+
+      <para>
+        If we look at the LHS of the rule, we see two conditions listed there.  Let's examine the first condition:
+      </para>
+
+      <programlisting><![CDATA[c: PermissionCheck(name == "customer", action == "delete")]]></programlisting>
+
+      <para>
+        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.
+      </para>
+             
+      <para>
+        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.
+      </para>
+      
+      <para>
+        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.  
+      </para>
+      
+      <para>
+        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.
+      </para>
+
+      <para>
+        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:
+      </para>
+
+      <programlisting><![CDATA[Role(name == "admin")]]></programlisting>
+
+      <para>
+        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".
+      </para>
+
+      <para>
+        So what is the consequence of the rule firing?  Let's take a look at the RHS of the rule:
+      </para>
+
+      <programlisting><![CDATA[c.grant()]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+      <sect3>
+        <title>Wildcard permission checks</title>
+
+        <para>
+          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:
+        </para>
+
+        <programlisting><![CDATA[rule CanDoAnythingToCustomersIfYouAreAnAdmin
+when
+  c: PermissionCheck(name == "customer")
+  Role(name == "admin")
+then
+  c.grant();
+end;
+        ]]></programlisting>
+
+        <para>
+          This rule allows users with the <literal>admin</literal> role to perform <emphasis>any</emphasis> action for
+          any <literal>customer</literal> permission check.
+        </para>
+      </sect3>
+
+    </sect2>
+
+  </sect1>
+
+  <sect1>
+    <title>SSL Security</title>
+
+    <para>
+      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:
+    </para>
+
+    <programlisting role="XML"><![CDATA[<page view-id="/login.xhtml" scheme="https"/>]]></programlisting>
+
+    <para>
+      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:
+    </para>
+
+    <programlisting role="XHTML"><![CDATA[<s:link view="/login.xhtml" value="Login"/>]]></programlisting>
+
+    <para>
+      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.
+    </para>
+
+    <para>
+      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>:
+    </para>
+
+    <programlisting role="XML"><![CDATA[<page view-id="*" scheme="http" />]]></programlisting>
+
+    <para>
+      Of course, if <emphasis>none</emphasis> of the pages in your application use HTTPS then it is not
+      required to specify a default scheme.
+    </para>
+
+    <para>
+      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>:
+    </para>
+
+    <programlisting role="XML"><![CDATA[<core:servlet-session invalidate-on-scheme-change="true"/>]]></programlisting>
+
+    <para>
+      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.
+    </para>
+
+  </sect1>
+
+  <sect1>
+    <title>CAPTCHA</title>
+
+    <para>
+      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.
+    </para>
+
+    <sect2>
+      <title>Configuring the CAPTCHA Servlet</title>
+      <para>
+        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>:
+      </para>
+
+      <programlisting role="XML"><![CDATA[<servlet>
+    <servlet-name>Seam Resource Servlet</servlet-name>
+    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+</servlet>
+
+<servlet-mapping>
+    <servlet-name>Seam Resource Servlet</servlet-name>
+    <url-pattern>/seam/resource/*</url-pattern>
+</servlet-mapping>]]></programlisting>
+
+    </sect2>
+
+    <sect2>
+      <title>Adding a CAPTCHA to a form</title>
+
+      <para>
+        Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:
+      </para>
+
+      <programlisting role="XHTML"><![CDATA[<h:graphicImage value="/seam/resource/captcha"/>
+<h:inputText id="verifyCaptcha" value="#{captcha.response}" required="true">
+   <s:validate />
+</h:inputText>
+<h:message for="verifyCaptcha"/>]]></programlisting>
+
+      <para>
+        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.
+      </para>
+
+    </sect2>
+
+    <sect2>
+      <title>Customising the CAPTCHA algorithm</title>
+
+      <para>
+        You may customize the CAPTCHA algorithm by overriding the built-in component:
+      </para>
+
+      <programlisting role="JAVA"><![CDATA[@Name("org.jboss.seam.captcha")
+ at Scope(SESSION)
+public class HitchhikersCaptcha extends Captcha
+{
+   @Override @Create
+   public void init()
+   {
+      setChallenge("What is the answer to life, the universe and everything?");
+      setCorrectResponse("42");
+   }
+
+   @Override
+   public BufferedImage renderChallenge()
+   {
+       BufferedImage img = super.renderChallenge();
+       img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring decoration
+       return img;
+   }
+}]]></programlisting>
+
+    </sect2>
+
+  </sect1>
+
+  <sect1>
+    <title>Security Events</title>
+
+    <para>
+      The following table describes a number of events (see <xref linkend="events"/>) raised by Seam Security.
+    </para>
+
+    <table>
+      <title>Security Events</title>
+
+      <tgroup cols="2">
+	      <!--     <colspec colnum="1" colwidth="3*" />
+        <colspec colnum="2" colwidth="2*" /> -->
+
+        <thead>
+          <row>
+            <entry align="center">
+              <para>Event Key</para>
+            </entry>
+            <entry align="center">
+              <para>Description</para>
+            </entry>
+          </row>
+        </thead>
+
+        <tbody>
+
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.loginSuccessful</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when a login attempt is successful.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.loginFailed</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when a login attempt fails.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.alreadyLoggedIn</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when a user that is already authenticated attempts to log in again.
+              </para>
+            </entry>
+          </row>          
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.notLoggedIn</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when a security check fails when the user is not logged in.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.notAuthorized</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when a security check fails when the user is logged in however doesn't have sufficient privileges.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.preAuthenticate</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised just prior to user authentication.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.postAuthenticate</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised just after user authentication.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.loggedOut</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised after the user has logged out.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.credentialsUpdated</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when the user's credentials have been changed.
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>org.jboss.seam.security.rememberMe</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                Raised when the Identity's rememberMe property is changed.
+              </para>
+            </entry>
+          </row>
+
+        </tbody>
+      </tgroup>
+    </table>
+
+  </sect1>
+  
+  <sect1>
+    <title>Run As</title>
+    
+    <para>
+        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.
+    </para>
+    
+    <para>
+      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.
+    </para>
+    
+    <programlisting role="JAVA"><![CDATA[    new RunAsOperation() {
+       @Override
+       public String[] getRoles() {
+          return new String[] { "admin" };
+       }
+       
+       public void execute() {
+          executePrivilegedOperation();
+       }         
+    }.run();]]></programlisting>
+    
+    <para>
+        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>.
+    </para>
+
+  </sect1>
+
+  <sect1>
+    <title>Extending the Identity component</title>
+
+    <para>
+      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.
+    </para>
+
+    <para>
+      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.
+    </para>
+
+    <programlisting role="JAVA"><![CDATA[@Name("org.jboss.seam.security.identity")
+ at Scope(SESSION)
+ at Install(precedence = APPLICATION)
+ at BypassInterceptors
+ at Startup
+public class CustomIdentity extends Identity
+{
+   private static final LogProvider log = Logging.getLogProvider(CustomIdentity.class);
+
+   private String companyCode;
+
+   public String getCompanyCode()
+   {
+      return companyCode;
+   }
+
+   public void setCompanyCode(String companyCode)
+   {
+      this.companyCode = companyCode;
+   }
+
+   @Override
+   public String login()
+   {
+      log.info("###### CUSTOM LOGIN CALLED ######");
+      return super.login();
+   }
+}]]></programlisting>
+
+  </sect1>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Security.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Spring.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Spring.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Spring.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,407 @@
+<chapter id="spring">
+
+    <title>Spring Framework integration</title>
+
+    <para>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.</para>
+    
+    <note>
+        <title>Technology preview </title>    
+    	<para>Spring integration in Seam is marked as technology preview, so standard support is not guaranteed.</para>     
+    </note>
+    
+    <para>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.</para>
+
+    <para>Seam's support for Spring provides the ability to: </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>inject Seam component instances into Spring beans</para>
+        </listitem>
+        <listitem>
+            <para>inject Spring beans into Seam components</para>
+        </listitem>
+        <listitem>
+            <para>turn Spring beans into Seam components</para>
+        </listitem>
+        <listitem>
+            <para>allow Spring beans to live in any Seam context</para>
+        </listitem>
+        <listitem>
+            <para>start a spring WebApplicationContext with a Seam component</para>
+        </listitem>
+        <listitem>
+            <para>Support for Spring PlatformTransactionManagement</para>
+        </listitem>
+        <listitem>
+            <para>provides a Seam managed replacement for Spring's <literal>OpenEntityManagerInViewFilter</literal> and <literal>OpenSessionInViewFilter</literal></para>
+        </listitem>
+        <listitem>
+            <para>Support for Spring <literal>TaskExecutors</literal> to back <literal>@Asynchronous</literal> calls</para>
+        </listitem>
+    </itemizedlist>
+
+    <section>
+        <title>Injecting Seam components into Spring beans</title>
+
+        <para> Injecting Seam component instances into Spring beans is accomplished using the
+                <literal>&lt;seam:instance/&gt;</literal> namespace handler. To enable the Seam namespace
+            handler, the Seam namespace must be added to the Spring beans definition file:</para>
+
+        <programlisting role="XML"><![CDATA[<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:seam="http://jboss.com/products/seam/spring-seam"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans
+                        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                        http://jboss.com/products/seam/spring-seam
+                        http://jboss.com/products/seam/spring-seam-2.1.xsd">]]></programlisting>
+
+        <para> Now any Seam component may be injected into any Spring bean: </para>
+
+        <programlisting role="XML"><![CDATA[<bean id="someSpringBean" class="SomeSpringBeanClass" scope="prototype">
+    <property name="someProperty">
+        <seam:instance name="someComponent"/>
+    </property>
+</bean>]]></programlisting>
+
+        <para> An EL expression may be used instead of a component name: </para>
+
+        <programlisting role="XML"><![CDATA[<bean id="someSpringBean" class="SomeSpringBeanClass" scope="prototype">
+    <property name="someProperty">
+        <seam:instance name="#{someExpression}"/>
+    </property>
+</bean>]]></programlisting>
+
+        <para> Seam component instances may even be made available for injection into Spring beans by a Spring bean id. </para>
+
+        <programlisting role="XML"><![CDATA[<seam:instance name="someComponent" id="someSeamComponentInstance"/>
+
+<bean id="someSpringBean" class="SomeSpringBeanClass" scope="prototype">
+    <property name="someProperty" ref="someSeamComponentInstance">
+</bean>
+]]></programlisting>
+
+        <para>Now for the caveat!</para>
+
+        <para> 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.</para>
+
+        <para>The <literal>&lt;seam:instance/&gt;</literal> tag lets us automatically proxy the Seam component.</para>
+
+        <programlisting role="XML"><![CDATA[<seam:instance id="seamManagedEM" name="someManagedEMComponent" proxy="true"/>
+
+<bean id="someSpringBean" class="SomeSpringBeanClass">
+    <property name="entityManager" ref="seamManagedEM">
+</bean>]]></programlisting>
+
+        <para> 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
+                <xref linkend="spring-persistence"/>Using a Seam Managed Persistence Context in Spring)</para>
+    </section>
+
+    <section>
+        <title>Injecting Spring beans into Seam components</title>
+
+        <para> It is even easier to inject Spring beans into Seam component instances. Actually, there are two possible
+            approaches: </para>
+
+        <itemizedlist>
+            <listitem>
+                <para> inject a Spring bean using an EL expression </para>
+            </listitem>
+            <listitem>
+                <para> make the Spring bean a Seam component </para>
+            </listitem>
+        </itemizedlist>
+
+        <para> We'll discuss the second option in the next section. The easiest approach is to access the Spring beans
+            via EL. </para>
+
+        <para> 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>: </para>
+
+        <programlisting role="XML"><![CDATA[<application>
+    <variable-resolver>
+        org.springframework.web.jsf.DelegatingVariableResolver
+    </variable-resolver>
+</application>]]></programlisting>
+
+        <para> Then you can inject Spring beans using <literal>@In</literal>: </para>
+
+        <programlisting role="JAVA"><![CDATA[@In("#{bookingService}")
+private BookingService bookingService;]]></programlisting>
+
+        <para>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... </para>
+
+    </section>
+
+    <section>
+        <title>Making a Spring bean into a Seam component</title>
+
+        <para> The <literal>&lt;seam:component/&gt;</literal> namespace handler can be used to make any Spring
+            bean a Seam component. Just place the <literal>&lt;seam:component/&gt;</literal> tag within the
+            declaration of the bean that you wish to be a Seam component: </para>
+
+        <programlisting role="XML"><![CDATA[<bean id="someSpringBean" class="SomeSpringBeanClass" scope="prototype">
+    <seam:component/>
+</bean>]]></programlisting>
+
+        <para> By default, <literal>&lt;seam:component/&gt;</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. </para>
+
+        <para> The <literal>scope</literal> attribute of <literal>&lt;seam:component/&gt;</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. </para>
+
+    </section>
+
+    <section>
+        <title>Seam-scoped Spring beans</title>
+
+        <para> 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.</para>
+
+        <para> By specifying <literal>&lt;seam:configure-scopes/&gt;</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. </para>
+
+        <programlisting role="XML"><![CDATA[<!-- Only needs to be specified once per bean factory-->
+<seam:configure-scopes/>
+
+...
+
+<bean id="someSpringBean" class="SomeSpringBeanClass" scope="seam.CONVERSATION"/>]]></programlisting>
+
+        <para> 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>) </para>
+
+        <para> 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.</para>
+
+        <para> Seam-scoped Spring beans defined this way can be injected into other Spring beans without the use of
+                <literal>&lt;seam:instance/&gt;</literal>. However, care must be taken to ensure scope impedance
+            is maintained. The normal approach used in Spring is to specify
+            <literal>&lt;aop:scoped-proxy/&gt;</literal> in the bean definition. However, Seam-scoped Spring
+            beans are <emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</literal>. So
+            if you need to inject a Seam-scoped Spring bean into a singleton,
+            <literal>&lt;seam:instance/&gt;</literal> must be used: </para>
+
+        <programlisting role="XML"><![CDATA[<bean id="someSpringBean" class="SomeSpringBeanClass" scope="seam.CONVERSATION"/>
+
+...
+
+<bean id="someSingleton">
+    <property name="someSeamScopedSpringBean">
+        <seam:instance name="someSpringBean" proxy="true"/>
+    </property>
+</bean>]]></programlisting>
+
+    </section>
+    <section id="spring-transactions">
+        <title>Using Spring PlatformTransactionManagement</title>
+
+        <para>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></para>
+
+        <para>To configure Seam to use Spring transactions enable the SpringTransaction component like so:</para>
+
+        <programlisting role="XML"><![CDATA[<spring:spring-transaction platform-transaction-manager="#{transactionManager}"/>]]></programlisting>
+
+		<para>
+			The <literal>spring:spring-transaction</literal> component will utilize Springs transaction synchronization
+			capabilities for synchronization callbacks.
+		</para>
+    </section>
+    <section id="spring-persistence">
+        <title>Using a Seam Managed Persistence Context in Spring</title>
+
+        <para>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.)</para>
+
+        <para>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.</para>
+
+        <para>This integration work provides the following functionality:</para>
+
+        <itemizedlist>
+            <listitem>
+                <para>transparent access to a Seam managed persistence context using Spring provided tools</para>
+            </listitem>
+            <listitem>
+                <para>access to Seam conversation scoped persistence contexts in a non web request
+                (e.g. asynchronous quartz job)</para>
+            </listitem>
+            <listitem>
+                <para>allows for using Seam managed persistence contexts with Spring managed transactions (will need to
+                flush the persistence context manually)</para>
+            </listitem>
+        </itemizedlist>
+
+        <para>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.</para>
+
+        <programlisting role="XML"><![CDATA[<bean id="seamEntityManagerFactory" class="org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactoryBean">
+   	<property name="persistenceContextName" value="entityManager"/>
+</bean>]]></programlisting>
+
+		<para>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:
+		</para>
+
+        <programlisting role="XML"><![CDATA[<bean id="seamEntityManagerFactory" class="org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactoryBean">
+   	<property name="persistenceContextName" value="entityManager"/>
+	<property name="persistenceUnitName" value="bookingDatabase:extended"/>
+</bean>]]></programlisting>
+
+		<para>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.</para>
+
+        <programlisting role="XML"><![CDATA[<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>]]></programlisting>
+
+		<para>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.
+		</para>
+
+		<para>The <literal>applicationContext.xml</literal> might look like:</para>
+        <programlisting role="XML"><![CDATA[<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
+	<property name="persistenceUnitName" value="bookingDatabase"/>
+</bean>
+<bean id="seamEntityManagerFactory" class="org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactoryBean">
+   	<property name="persistenceContextName" value="entityManager"/>
+	<property name="persistenceUnitName" value="bookingDatabase:extended"/>
+</bean>
+<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
+	<property name="defaultPersistenceUnitName" value="bookingDatabase:extended"/>
+</bean>]]></programlisting>
+
+		<para>The <literal>component.xml</literal> might look like:</para>
+		<programlisting role="XML"><![CDATA[<persistence:managed-persistence-context name="entityManager"
+	auto-create="true" entity-manager-factory="#{entityManagerFactory}"/>]]></programlisting>
+
+
+		<para><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.</para>
+
+        <programlisting role="XML"><![CDATA[<bean id="bookingService" class="org.jboss.seam.example.spring.BookingService">
+	<property name="entityManagerFactory" ref="seamEntityManagerFactory"/>
+</bean>]]></programlisting>
+    </section>
+    <section id="spring-hibernate">
+        <title>Using a Seam Managed Hibernate Session in Spring</title>
+
+        <para>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 <xref linkend="spring-persistence"/>JPA integration.</para>
+
+        <para>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.</para>
+
+        <programlisting role="XML"><![CDATA[<bean id="seamSessionFactory" class="org.jboss.seam.ioc.spring.SeamManagedSessionFactoryBean">
+	<property name="sessionName" value="hibernateSession"/>
+</bean>]]></programlisting>
+
+		<para>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>.</para>
+    </section>
+    <section>
+        <title>Spring Application Context as a Seam Component</title>
+
+        <para> Although it is possible to use the Spring <literal>ContextLoaderListener</literal> to start your
+        	application's Spring ApplicationContext there are a couple of limitations.</para>
+
+        <itemizedlist>
+            <listitem>
+                <para> the Spring ApplicationContext must be started <emphasis>after</emphasis> the
+                	<literal>SeamListener</literal> </para>
+            </listitem>
+            <listitem>
+                <para> it can be tricky starting a Spring ApplicationContext for use in Seam unit and integration
+                	tests </para>
+            </listitem>
+        </itemizedlist>
+
+        <para> 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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</literal> element following standard
+        	<literal>components.xml</literal> multi value practices. </para>
+
+        <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:spring="http://jboss.com/products/seam/spring"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="http://jboss.com/products/seam/components
+                                http://jboss.com/products/seam/components-2.1.xsd
+                                http://jboss.com/products/seam/spring
+                                http://jboss.com/products/seam/spring-2.1.xsd">
+
+	<spring:context-loader config-locations="/WEB-INF/applicationContext.xml"/>
+
+</components>]]></programlisting>
+    </section>
+    <section>
+        <title>Using a Spring TaskExecutor for @Asynchronous</title>
+
+        <para>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:</para>
+
+        <programlisting role="XML"><![CDATA[<spring:task-executor-dispatcher task-executor="#{springThreadPoolTaskExecutor}"/>]]></programlisting>
+
+        <para>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:</para>
+
+        <programlisting role="XML">
+			<![CDATA[<!-- Install a ThreadPoolDispatcher to handle scheduled asynchronous event -->
+<core:thread-pool-dispatcher name="threadPoolDispatcher"/>
+
+<!-- Install the SpringDispatcher as default -->
+<spring:task-executor-dispatcher task-executor="#{springThreadPoolTaskExecutor}" schedule-dispatcher="#{threadPoolDispatcher}"/>]]>
+		</programlisting>
+    </section>
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Spring.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Testing.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Testing.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Testing.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,647 @@
+<chapter id="testing">
+	<title>Testing Seam applications</title>
+	<para>
+	    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).
+	</para>
+	<para>
+	   Both kinds of tests are very easy to write.
+	</para>
+	
+	<section>
+		<title>Unit testing Seam components</title>
+		<para>
+		    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.
+		</para>
+		<para>
+		    Consider the following Seam Component which creates a statement of
+            account for a customer:
+		</para>
+		
+        <programlisting role="JAVA"><![CDATA[@Stateless
+ at Scope(EVENT)
+ at Name("statementOfAccount")
+public class StatementOfAccount {
+   
+   @In(create=true) EntityManager entityManager
+   
+   private double statementTotal;
+   
+   @In
+   private Customer customer;
+   
+   @Create
+   public void create() {
+      List<Invoice> invoices = entityManager
+         .createQuery("select invoice from Invoice invoice where invoice.customer = :customer")
+         .setParameter("customer", customer)
+         .getResultList();
+      statementTotal = calculateTotal(invoices);
+   }
+   
+   public double calculateTotal(List<Invoice> invoices) {
+      double total = 0.0;
+      for (Invoice invoice: invoices)
+      {
+         double += invoice.getTotal();
+      }
+      return total;
+   }
+   
+   // getter and setter for statementTotal
+   
+}]]></programlisting>
+
+        <para>
+            We could write a unit test for the calculateTotal method (which tests
+            the business logic of the component) as follows:
+        </para>
+
+        <programlisting role="JAVA"><![CDATA[public class StatementOfAccountTest {
+    
+    @Test
+    public testCalculateTotal {
+       List<Invoice> invoices = generateTestInvoices(); // A test data generator
+       double statementTotal = new StatementOfAccount().calculateTotal(invoices);
+       assert statementTotal = 123.45;
+    }   
+}
+]]></programlisting>
+
+        <para>
+            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!
+       </para>
+       <para>    
+            However, if you want to test the entire application, read on.
+       </para>
+        
+    </section>
+    
+    <section>
+        <title>Integration testing Seam components</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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).
+        </para>
+        
+<programlisting role="JAVA"><![CDATA[public class RegisterTest extends SeamTest
+{
+   
+   @Test
+   public void testRegisterComponent() throws Exception
+   {
+            
+      new ComponentTest() {
+
+         protected void testComponents() throws Exception
+         {
+            setValue("#{user.username}", "1ovthafew");
+            setValue("#{user.name}", "Gavin King");
+            setValue("#{user.password}", "secret");
+            assert invokeMethod("#{register.register}").equals("success");
+            assert getValue("#{user.username}").equals("1ovthafew");
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.password}").equals("secret");
+         }
+         
+      }.run();
+      
+   }
+
+   ...
+   
+}]]></programlisting>
+
+        
+        <section>
+            <title>Using mocks in integration tests</title>
+            
+            <para>
+                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:
+            </para>
+            
+            <programlisting role="JAVA"><![CDATA[@Name("paymentProcessor")
+public class PaymentProcessor {
+    public boolean processPayment(Payment payment) { .... }
+}]]></programlisting>
+            
+            <para>
+                For integration tests, we can mock out this component as follows:
+            </para>
+            
+            <programlisting role="JAVA"><![CDATA[@Name("paymentProcessor")
+ at Install(precedence=MOCK)
+public class MockPaymentProcessor extends PaymentProcessor {
+    public boolean processPayment(Payment payment) {
+        return true;
+    }
+}]]></programlisting>
+            
+            <para>
+                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.
+            </para>
+            
+        </section>
+        
+    </section>
+    
+    <section>
+        <title>Integration testing Seam application user interactions</title>
+        
+        <para>
+            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.
+        </para>
+        
+        <para>
+            <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!
+        </para>
+        
+        <para>
+            This approach tests everything except the view.
+        </para>
+        
+        <para>
+            Let's consider a JSP view for the component we unit tested above:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<html>
+ <head>
+  <title>Register New User</title>
+ </head>
+ <body>
+  <f:view>
+   <h:form>
+     <table border="0">
+       <tr>
+         <td>Username</td>
+         <td><h:inputText value="#{user.username}"/></td>
+       </tr>
+       <tr>
+         <td>Real Name</td>
+         <td><h:inputText value="#{user.name}"/></td>
+       </tr>
+       <tr>
+         <td>Password</td>
+         <td><h:inputSecret value="#{user.password}"/></td>
+       </tr>
+     </table>
+     <h:messages/>
+     <h:commandButton type="submit" value="Register" action="#{register.register}"/>
+   </h:form>
+  </f:view>
+ </body>
+</html>]]></programlisting>
+
+        <para>
+            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:
+        </para>
+
+<programlisting role="JAVA"><![CDATA[public class RegisterTest extends SeamTest
+{
+   
+   @Test
+   public void testRegister() throws Exception
+   {
+            
+      new FacesRequest() {
+
+         @Override
+         protected void processValidations() throws Exception
+         {
+            validateValue("#{user.username}", "1ovthafew");
+            validateValue("#{user.name}", "Gavin King");
+            validateValue("#{user.password}", "secret");
+            assert !isValidationFailure();
+         }
+         
+         @Override
+         protected void updateModelValues() throws Exception
+         {
+            setValue("#{user.username}", "1ovthafew");
+            setValue("#{user.name}", "Gavin King");
+            setValue("#{user.password}", "secret");
+         }
+
+         @Override
+         protected void invokeApplication()
+         {
+            assert invokeMethod("#{register.register}").equals("success");
+         }
+
+         @Override
+         protected void renderResponse()
+         {
+            assert getValue("#{user.username}").equals("1ovthafew");
+            assert getValue("#{user.name}").equals("Gavin King");
+            assert getValue("#{user.password}").equals("secret");
+         }
+         
+      }.run();
+      
+   }
+
+   ...
+   
+}]]></programlisting>
+
+        <para>
+            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.
+        </para>
+        
+        <para>
+            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:
+        </para>
+
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/plugin-testng.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/plugin-testng.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+       
+        <section>
+           <title>Configuration</title>
+           
+           <para>
+              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).
+           </para>
+           
+           <para>
+              First, lets look at the dependencies you need at a minimum:
+           </para>
+           
+           <table>
+              <title></title>
+              <tgroup cols="3">
+                 <thead>
+                    <row >
+                       <entry>
+                          Group Id
+                       </entry>
+                       <entry>
+                          Artifact Id
+                       </entry>
+                       <entry>
+                          Location in Seam
+                       </entry>
+                    </row>
+                 </thead>
+                 <tbody>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.seam.embedded</literal>
+                       </entry>
+                       <entry>
+                          <literal>hibernate-all</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/test/hibernate-all.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.seam.embedded</literal>
+                       </entry>
+                       <entry>
+                          <literal>jboss-embedded-all</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/test/jboss-embedded-all.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.seam.embedded</literal>
+                       </entry>
+                       <entry>
+                          <literal>thirdparty-all</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/test/thirdparty-all.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.seam.embedded</literal>
+                       </entry>
+                       <entry>
+                          <literal>jboss-embedded-api</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/jboss-embedded-api.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.seam</literal>
+                       </entry>
+                       <entry>
+                          <literal>jboss-seam</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/jboss-seam.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>org.jboss.el</literal>
+                       </entry>
+                       <entry>
+                          <literal>jboss-el</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/jboss-el.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>javax.faces</literal>
+                       </entry>
+                       <entry>
+                          <literal>jsf-api</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/jsf-api.jar</literal>
+                       </entry>
+                    </row>
+                    <row>
+                       <entry>
+                          <literal>javax.activation</literal>
+                       </entry>
+                       <entry>
+                          <literal>javax.activation</literal>
+                       </entry>
+                       <entry>
+                          <literal>lib/activation.jar</literal>
+                       </entry>
+                    </row>
+                 </tbody>
+              </tgroup>
+           </table>
+           
+           <para>
+              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.
+           </para>
+           
+           <para>
+              You also need to include the <literal>bootstrap/</literal> 
+              directory on the classpath; <literal>bootstrap/</literal> contains
+              the configuration for Embedded JBoss.
+           </para>
+           
+           <para>
+              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.
+           </para>
+           
+           <para>
+              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.
+           </para>
+           
+         </section>
+         
+        <section>
+           <title>Using SeamTest with another test framework</title>
+         
+           <para>
+              Seam provides TestNG support out of the box, but you can also use
+              another test framework, such as JUnit, if you want.
+           </para>
+           
+           <para>
+              You'll need to provide an implementation of 
+              <literal>AbstractSeamTest</literal> which does the following:
+           </para>
+           
+           <itemizedlist>
+              <listitem>
+                 <para>
+                    Calls <literal>super.begin()</literal> before every test
+                    method.
+                 </para>
+              </listitem>
+              <listitem>
+                 <para>
+                    Calls <literal>super.end()</literal> after every test
+                    method.
+                 </para>
+              </listitem>
+              <listitem>
+                 <para>
+                    Calls <literal>super.setupClass()</literal> to setup 
+                    integration test environment. This should be called before
+                    any test methods are called.
+                 </para>
+              </listitem>
+              <listitem>
+                 <para>
+                    Calls <literal>super.cleanupClass()</literal> to clean up
+                    the integration test environment.
+                 </para>
+              </listitem>
+              <listitem>
+                 <para>
+                    Calls <literal>super.startSeam()</literal> to start Seam at
+                    the start of integration testing.
+                 </para>
+              </listitem>
+              <listitem>
+                 <para>
+                    Calls <literal>super.stopSeam()</literal> to cleanly shut
+                    down Seam at the end of integration testing.
+                 </para>
+              </listitem>
+           </itemizedlist>
+        </section>
+        
+        <section>
+          <title>Integration Testing with Mock Data</title>
+          
+          <para>
+            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.
+         </para>
+         
+         <para>
+            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.
+         </para>
+          
+          <programlisting role="XML"><![CDATA[<dataset>
+   
+   <ARTIST 
+      id="1"
+      dtype="Band"
+      name="Pink Floyd" />
+      
+   <DISC
+      id="1"
+      name="Dark Side of the Moon"
+      artist_id="1" />
+      
+</dataset>]]></programlisting>
+
+         <para>
+            and tell Seam about it by overriding <literal>prepareDBUnitOperations()</literal>:
+         </para>
+      
+         <programlisting role="JAVA"><![CDATA[protected void prepareDBUnitOperations() {
+    beforeTestOperations.add(
+       new DataSetOperation("my/datasets/BaseData.xml")
+    );
+ }]]></programlisting>
+ 
+         <para>
+           <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.
+         </para>
+         
+         <para>
+           If you require extra cleanup after a test method executes, add 
+           operations to <literal>afterTestOperations</literal> list.
+         </para>
+         
+         <para>
+           You need to tell DBUnit about the datasource you are using by 
+           setting a TestNG test parameter named <literal>datasourceJndiName</literal>:
+         </para>
+         
+         <programlisting role="XML">
+   <![CDATA[<parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>]]>
+         </programlisting> 
+         
+        <para>
+            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.
+         </para> 
+          
+        </section>
+        
+        <section id="testing.mail">
+          <title>Integration Testing Seam Mail</title>
+          
+          <para>
+            Warning! This feature is still under development.
+          </para>
+          
+          <para>
+            It's very easy to integration test your Seam Mail:
+          </para>
+          
+          <programlisting role="JAVA"><![CDATA[public class MailTest extends SeamTest {
+    
+   @Test
+   public void testSimpleMessage() throws Exception {
+        
+      new FacesRequest() {
+
+         @Override
+         protected void updateModelValues() throws Exception {
+            setValue("#{person.firstname}", "Pete");
+            setValue("#{person.lastname}", "Muir");
+            setValue("#{person.address}", "test at example.com");
+         }
+            
+         @Override
+         protected void invokeApplication() throws Exception {
+            MimeMessage renderedMessage = getRenderedMailMessage("/simple.xhtml");
+            assert renderedMessage.getAllRecipients().length == 1;
+            InternetAddress to = (InternetAddress) renderedMessage.getAllRecipients()[0];
+            assert to.getAddress().equals("test at example.com");
+         }
+            
+      }.run();       
+   }
+}]]></programlisting>
+
+          <para>
+            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.
+          </para>
+          
+          <para>
+            There is no support for rendering standard JSF components so you 
+            can't test the content body of the mail message easily.
+          </para>
+        </section> 
+        
+    </section>
+	
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Testing.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Text.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Text.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Text.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,229 @@
+<chapter id="text">
+    <title>Seam Text</title>
+    
+    <para>
+        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>&lt;s:formattedText/&gt;</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.
+    </para>
+    
+    <section>
+        <title>Basic fomatting</title>
+        <para>
+            Here is a simple example:
+        </para>
+        
+        <programlisting><![CDATA[It's easy to make *emphasis*, |monospace|,
+~deleted text~, super^scripts^ or _underlines_.]]></programlisting>
+    
+        <para>
+            If we display this using <literal>&lt;s:formattedText/&gt;</literal>, we will get
+            the following HTML produced:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<p>
+It's easy to make <i>emphasis</i>, <tt>monospace</tt>
+<del>deleted text</del>, super<sup>scripts</sup> or <u>underlines</u>.
+</p>]]></programlisting>
+
+        <para>
+            We can use a blank line to indicate a new paragraph, and <literal>+</literal> to
+            indicate a heading:
+        </para>
+
+        <programlisting><![CDATA[+This is a big heading
+You /must/ have some text following a heading!
+ 
+++This is a smaller heading
+This is the first paragraph. We can split it across multiple 
+lines, but we must end it with a blank line.
+
+This is the second paragraph.]]></programlisting>
+
+        <para>
+            (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:
+        </para>
+    
+        <programlisting role="XHTML"><![CDATA[<h1>This is a big heading</h1>
+<p>
+You <i>must</i> have some text following a heading!
+</p>
+ 
+<h2>This is a smaller heading</h2>
+<p>
+This is the first paragraph. We can split it across multiple 
+lines, but we must end it with a blank line.
+</p>
+
+<p>
+This is the second paragraph.
+</p>]]></programlisting>
+
+        <para>
+            Ordered lists are created using the <literal>#</literal> character. Unordered lists
+            use the <literal>=</literal> character:
+        </para>
+
+        <programlisting><![CDATA[An ordered list:
+        
+#first item
+#second item
+#and even the /third/ item
+
+An unordered list:
+
+=an item
+=another item]]></programlisting>
+
+        <programlisting role="XHTML"><![CDATA[<p>
+An ordered list:
+</p>
+ 
+<ol>       
+<li>first item</li>
+<li>second item</li>
+<li>and even the <i>third</i> item</li>
+</ol>
+
+<p>
+An unordered list:
+</p>
+
+<ul>
+<li>an item</li>
+<li>another item</li>
+</ul>]]></programlisting>
+        
+        <para>
+            Quoted sections should be surrounded in double quotes:
+        </para>
+
+        <programlisting><![CDATA[The other guy said:
+        
+"Nyeah nyeah-nee 
+/nyeah/ nyeah!"
+
+But what do you think he means by "nyeah-nee"?]]></programlisting>
+        
+        <programlisting role="XHTML"><![CDATA[<p>
+The other guy said:
+</p>
+        
+<q>Nyeah nyeah-nee
+<i>nyeah</i> nyeah!</q>
+
+<p>
+But what do you think he means by <q>nyeah-nee</q>?
+</p>]]></programlisting>
+
+    </section>
+    
+    <section>
+        <title>Entering code and text with special characters</title>
+        <para>
+            Special characters such as <literal>*</literal>, <literal>|</literal>
+            and <literal>#</literal>, along with HTML characters such as
+            <literal>&lt;</literal>, <literal>&gt;</literal> and <literal>&amp;</literal> 
+            may be escaped using <literal>\</literal>:
+        </para>
+        
+        <programlisting><![CDATA[You can write down equations like 2\*3\=6 and HTML tags
+like \<body\> using the escape character: \\.]]></programlisting>
+        
+        <programlisting role="XHTML"><![CDATA[<p>
+You can write down equations like 2*3=6 and HTML tags
+like &lt;body&gt; using the escape character: \.
+</p>]]></programlisting>
+
+        <para>
+            And we can quote code blocks using backticks:
+        </para>
+        
+        <programlisting><![CDATA[My code doesn't work:
+
+`for (int i=0; i<100; i--)
+{
+    doSomething();
+}`
+
+Any ideas?]]></programlisting>
+
+        <programlisting role="XHTML"><![CDATA[<p>
+My code doesn't work:
+</p>
+
+<pre>for (int i=0; i&lt;100; i--)
+{
+    doSomething();
+}</pre>
+
+<p>
+Any ideas?
+</p>]]></programlisting>
+
+       <para>
+          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:
+       </para>
+
+       <programlisting><![CDATA[This is a |<tag attribute="value"/>| example.]]></programlisting>
+
+       <para>
+          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).
+       </para>
+
+    </section>
+    
+    <section>
+        <title>Links</title>
+        
+        <para>
+            A link may be created using the following syntax:
+        </para>
+
+        <programlisting><![CDATA[Go to the Seam website at [=>http://jboss.com/products/seam].]]></programlisting>
+        
+        <para>
+            Or, if you want to specify the text of the link:
+        </para>
+
+        <programlisting><![CDATA[Go to [the Seam website=>http://jboss.com/products/seam].]]></programlisting>
+        
+        <para>
+            For advanced users, it is even possible to customize the Seam Text parser to understand
+            wikiword links written using this syntax.
+        </para>
+        
+    </section>
+    
+    <section>
+        <title>Entering HTML</title>
+        
+        <para>
+            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:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[You might want to link to <a href="http://jboss.com/products/seam">something
+cool</a>, or even include an image: <img src="/logo.jpg"/>]]></programlisting>
+        
+        <para>
+           And for creating tables:
+        </para>
+        
+        <programlisting role="XHTML"><![CDATA[<table>
+    <tr><td>First name:</td><td>Gavin</td></tr>
+    <tr><td>Last name:</td><td>King</td></tr>
+</table>]]></programlisting>
+
+        <para>
+            But you can do much more if you want!
+        </para>
+         
+    </section>
+    
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Text.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tools.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tools.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tools.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,623 @@
+<chapter id="tools">
+  <title>Seam tools</title>
+  
+  <section>
+    <title>jBPM designer and viewer</title>
+  
+     <para>
+       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/)         
+     </para> 
+     
+     <section>
+       <title>Business process designer</title>
+       
+       <para>
+         This tool lets you design your own business process in a graphical way.
+       </para>
+       
+       <screenshot>
+         <screeninfo>Business process designer</screeninfo>
+         <mediaobject>
+           <imageobject role="fo">
+             <imagedata fileref="images/bpmd.png" align="center" scalefit="1"/>
+           </imageobject>
+           <imageobject role="html">
+             <imagedata fileref="images/bpmd.png" align="center"/>
+           </imageobject>
+         </mediaobject>
+       </screenshot>
+       
+     </section>
+     
+     <section>
+       <title>Pageflow viewer</title>
+       
+       <para>
+         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.
+       </para>
+       
+       <screenshot>
+         <screeninfo>Business process designer</screeninfo>
+         <mediaobject>
+           <imageobject role="fo">
+             <imagedata fileref="images/bpmpfv.png" align="center" scalefit="1"/>
+           </imageobject>
+           <imageobject role="html">
+             <imagedata fileref="images/bpmpfv.png" align="center"/>
+           </imageobject>
+         </mediaobject>
+       </screenshot>
+
+      </section>
+
+    </section>
+    
+    <!--
+  <section>
+    <title>CRUD-application generator</title>
+    
+    <para>
+      This chapter, will give you a short overview of the support for Seam that is available in the Hibernate Tools.
+      Hibernate Tools is a set of tools for working with Hibernate and related technologies, such as JBoss Seam and EJB3.
+      The tools are available as a set of eclipse plugins and Ant tasks. You can download the Hibernate Tools from the JBoss Eclipse IDE or Hibernate Tools websites.
+    </para>
+    
+    <para>
+      The specific support for Seam that is currently available is generation of a fully functional Seam based CRUD-application.
+      The CRUD-application can be generated based on your existing Hibernate mapping files or EJB3 annotated POJO's or even fully
+      reverse engineered from your existing database schema.
+    </para>
+    
+    <para>
+      The following sections is focused on the features required to understand for usage with Seam. The content is derived from the the Hibernate Tools reference documentation. Thus if you
+      need more detailed information please refer to the Hibernate Tools documentation.
+    </para>
+    
+    <section>
+      <title>Creating a Hibernate configuration file</title>
+
+      <para>
+        To be able to reverse engineer and generate code a hibernate.properties 
+        or hibernate.cfg.xml file is needed. The Hibernate Tools provide a wizard for generating the
+        hibernate.cfg.xml file if you do not already have such file.
+      </para>
+
+      <para>
+        Start the wizard by clicking "New Wizard" (Ctrl+N), select the
+        Hibernate/Hibernate Configuration file (cfg.xml) wizard and press "Next".
+        After selecting the wanted location for the hibernate.cfg.xml file, you
+        will see the following page:
+      </para>
+
+      <mediaobject>
+        <imageobject role="fo">
+          <imagedata fileref="/images/hibernatecfgwizard.gif" format="gif" contentwidth="5cm" />
+        </imageobject>
+
+        <imageobject role="html">
+          <imagedata align="center"
+                     fileref="/images/hibernatecfgwizard.gif"
+                     format="gif" />
+        </imageobject>
+      </mediaobject>
+
+      <para>
+        Tip: The contents in the combo boxes for the JDBC driver class and
+        JDBC URL change automatically, depending on the Dialect and actual driver
+        you have chosen.
+      </para>
+
+      <para>
+        Enter your configuration information in this dialog. Details about
+        the configuration options can be found in Hibernate reference
+        documentation.
+      </para>
+
+      <para>
+        Press "Finish" to create the configuration file, after optionally
+        creating a Console onfiguration, the hibernate.cfg.xml will be
+        automatically opened in an editor. The last option "Create Console
+        Configuration" is enabled by default and when enabled i will automatically
+        use the hibernate.cfg.xml for the basis of a "Console
+        Configuration"
+      </para>
+    </section>
+
+    <section>
+      <title>Creating a Hibernate Console configuration</title>
+
+      <para>
+        A Console Configuration describes to the Hibernate plugin which configuration files
+        should be used to configure hibernate, including which classpath is needed to load the POJO's,
+        JDBC drivers etc. It is required to make usage of query prototyping, reverse engineering and
+        code generation. You can have multiple named console configurations. Normally you would just
+        need one per project, but more (or less) is definitly possible.
+      </para>  
+
+      <para>
+        You create a console configuration by running the Console
+        Configuration wizard, shown in the following screenshot. The same wizard
+        will also be used if you are coming from the hibernate.cfg.xml wizard and
+        had enabled "Create Console Configuration".
+      </para>
+
+      <mediaobject>
+        <title>Creating a Hibernate Console configuration</title>
+
+        <imageobject role="fo">
+          <imagedata fileref="/images/consolecfgwizard.gif" format="GIF" />
+        </imageobject>
+
+        <imageobject role="html">
+          <imagedata align="center"
+                     fileref="/images/consolecfgwizard.gif"
+                     format="gif" />
+        </imageobject>
+      </mediaobject>
+
+      <para>
+        The following table describes the relevant settings. The wizard can
+        automatically detect default values for most of these if you started the
+        Wizard with the relevant java project selected
+      </para>
+
+      <table>
+        <title>Hibernate Console Configuration Parameters</title>
+  
+        <tgroup cols="3">
+          <colspec colnum="1" colwidth="1*" />
+
+          <colspec colnum="2" colwidth="3*" />
+
+          <colspec colnum="3" colwidth="1*" />
+
+          <thead>
+            <row>
+              <entry align="center">
+                <para>Parameter</para>
+              </entry>
+
+              <entry align="center">
+                <para>Description</para>
+              </entry>
+
+              <entry align="center">
+                <para>Auto detected value</para>
+              </entry>
+            </row>
+          </thead>
+
+          <tbody>
+            <row>
+              <entry>
+                <para>Name</para>
+              </entry>
+
+              <entry>
+                <para>The unique name of the configuration</para>
+              </entry>
+
+              <entry>
+                <para>Name of the selected project</para>
+              </entry>
+            </row>
+
+            <row>
+              <entry>
+                <para>Property file</para>
+              </entry>
+  
+              <entry>
+                <para>Path to a hibernate.properties file</para>
+              </entry>
+
+              <entry>
+                <para>First hibernate.properties file found in the selected
+                project</para>
+              </entry>
+            </row>
+
+            <row>
+              <entry>
+                <para>Configuration file</para>
+              </entry>
+
+              <entry>
+                <para>Path to a hibernate.cfg.xml file</para>
+              </entry>
+
+              <entry>
+                <para>First hibernate.cfg.xml file found in the selected
+                project</para>
+              </entry>
+            </row>
+
+            <row>
+              <entry>
+                <para>Enable Hibernate ejb3/annotations</para>
+              </entry>
+
+              <entry>
+                <para>Selecting this option enables usage of annotated classes.
+                hbm.xml files are of course still possible to use too. This
+                feature requires running the Eclipse IDE with a JDK 5 runtime,
+                otherwise you will get classloading and/or version
+                errors.</para>
+              </entry>
+
+              <entry>
+                <para>Not enabled</para>
+              </entry>
+            </row>
+
+            <row>
+              <entry>
+                <para>Mapping files</para>
+              </entry>
+
+              <entry>
+                <para>List of additional mapping files that should be loaded.
+                Note: A hibernate.cfg.xml can also contain mappings. Thus if
+                these a duplicated here, you will get "Duplicate mapping" errors
+                when using the console configuration.</para>
+              </entry>
+
+              <entry>
+                <para>If no hibernate.cfg.xml file is found, all hbm.xml files
+                found in the selected project</para>
+              </entry>
+            </row>
+
+            <row>
+              <entry>
+                <para>Classpath</para>
+              </entry>
+
+              <entry>
+                <para>The classpath for loading POJO and JDBC drivers. Do not
+                add Hibernate core libraries or dependencies, they are already
+                included. If you get ClassNotFound errors then check this list
+                for possible missing or redundant directories/jars.</para>
+              </entry>
+
+              <entry>
+                <para>The default build output directory and any JARs with a
+                class implementing java.sql.Driver in the selected
+                project</para>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+
+      <para>Clicking "Finish" creates the configuration and shows it in the
+      "Hibernate Configurations" view</para>
+
+      <mediaobject>
+        <title>Console overview</title>
+
+        <imageobject role="fo">
+          <imagedata align="center" 
+                     fileref="/images/consoleoutline-before-reveng.gif"
+                     format="GIF" />
+        </imageobject>
+
+        <imageobject role="html">
+          <imagedata align="center"
+                     fileref="/images/consoleoutline-before-reveng.gif"
+                     format="gif" />
+        </imageobject>
+      </mediaobject>
+
+    </section>
+
+    <section>
+      <title>Reverse engineering and code generation</title>
+
+      <para>
+        A very simple "click-and-generate" reverse engineering and code
+        generation facility is available. It is this facility that allows you to
+        generate the skeleton for a full Seam CRUD application.
+      </para>
+
+      <para>
+        To start working with this process, start the "Hibernate Code
+        Generation" which is available in the toolbar via the Hibernate icon or
+        via the "Run/Hibernate Code Generation" menu item.
+      </para>
+
+      <section>
+        <title>Code Generation Launcher</title>
+
+        <para>When you click on "Hibernate Code Generation" the standard Eclipse
+        launcher dialog will appear. In this dialog you can create, edit and
+        delete named Hibernate code generation "launchers".</para>
+
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="/images/codegendropdown.gif" format="GIF" />
+          </imageobject>
+
+          <imageobject role="html">
+            <imagedata align="center"
+                       fileref="/images/codegendropdown.gif"
+                       format="gif" />
+          </imageobject>
+        </mediaobject>
+
+        <para>The dialog has the standard tabs "Refresh" and "Common" that can
+        be used to configure which directories should be automatically refreshed
+        and various general settings launchers, such as saving them in a project
+        for sharing the launcher within a team.</para>
+
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="/images/codegenmaintab.gif" format="GIF" />
+          </imageobject>
+
+          <imageobject role="html">
+            <imagedata align="center"
+                       fileref="/images/codegenmaintab.gif"
+                       format="gif" />
+          </imageobject>
+        </mediaobject>
+
+        <para>The first time you create a code generation launcher you should
+        give it a meaningfull name, otherwise the default prefix
+        "New_Generation" will be used.</para>
+
+        <para>Note: The "At least one exporter option must be selected" is just
+        a warning stating that for this launch to work you need to select an
+        exporter on the Exporter tab. When an exporter has been selected the
+        warning will disappear.</para>
+
+        <para>On the "Main" tab you the following fields:</para>
+
+        <table>
+          <title>Code generation "Main" tab fields</title>
+
+          <tgroup cols="2">
+            <colspec colnum="1" colwidth="1*" />
+
+            <colspec colnum="2" colwidth="3*" />
+
+            <colspec colnum="3" colwidth="0.5*" />
+
+            <thead>
+              <row>
+                <entry align="center"><para>Field</para></entry>
+
+                <entry align="center"><para>Description</para></entry>
+              </row>
+            </thead>
+
+            <tbody>
+              <row>
+                <entry><para>Console Configuration</para></entry>
+
+                <entry><para>The name of the console configuration which should
+                be used when code generating.</para></entry>
+              </row>
+
+              <row>
+                <entry><para>Output directory</para></entry>
+
+                <entry><para>Path to a directory into where all output will be
+                written by default. Be aware that existing files will be
+                overwritten, so be sure to specify the correct
+                directory.</para></entry>
+              </row>
+	
+	            <row>
+	              <entry><para>Reverse engineer from JDBC
+	              Connection</para></entry>
+	
+	              <entry><para>If enabled the tools will reverse engineer the
+	              database available via the connection information in the
+	              selected Hibernate Console Configuration and generate code based
+	              on the database schema. If not enabled the code generation will
+	              just be based on the mappings already specified in the Hibernate
+	              Console configuration.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Package</para></entry>
+	
+	              <entry><para>The package name here is used as the default
+	              package name for any entities found when reverse
+	              engineering.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>reveng.xml</para></entry>
+	
+	              <entry><para>Path to a reveng.xml file. A reveng.xml file allows
+	              you to control certain aspects of the reverse engineering. e.g.
+	              how jdbc types are mapped to hibernate types and especially
+	              important which tables are included/excluded from the process.
+	              Clicking "setup" allows you to select an existing reveng.xml
+	              file or create a new one..</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>reveng. strategy</para></entry>
+	
+	              <entry><para>If reveng.xml does not provide enough customization
+	              you can provide your own implementation of an
+	              ReverseEngineeringStrategy. The class need to be in the claspath
+	              of the Console Configuration, otherwise you will get class not
+	              found exceptions.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate basic typed composite ids</para></entry>
+	
+	              <entry><para>This field should always be enabled when generating the Seam CRUD application.
+	              A table that has a multi-colum primary key a
+	              &lt;composite-id&gt; mapping will always be created. If this
+	              option is enabled and there are matching foreign-keys each key
+	              column is still considered a 'basic' scalar (string, long, etc.)
+	              instead of a reference to an entity. If you disable this option
+	              a &lt;key-many-to-one&gt; instead. Note: a &lt;many-to-one&gt;
+	              property is still created, but is simply marked as non-updatable
+	              and non-insertable.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Use custom templates</para></entry>
+	
+	              <entry><para>If enabled, the Template directory will be searched
+	              first when looking up the velocity templates, allowing you to
+	              redefine how the individual templates process the hibernate
+	              mapping model.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Template directory</para></entry>
+	
+	              <entry><para>A path to a directory with custom velocity
+	              templates.</para></entry>
+	            </row>
+	          </tbody>
+	        </tgroup>
+	      </table>
+	    </section>
+	
+	    <section>
+	      <title>Exporters</title>
+	
+	      <para>The exporters tab is used to specify which type of code that
+	      should be generated. Each selection represents an "Exporter" that are
+	      responsible for generating the code, hence the name.</para>
+	
+	      <mediaobject>
+	        <imageobject role="fo">
+	          <imagedata fileref="/images/codegenselectseam.gif" format="GIF" />
+	        </imageobject>
+	
+	        <imageobject role="html">
+	          <imagedata align="center"
+	                     fileref="/images/codegenselectseam.gif"
+	                     format="gif" />
+	        </imageobject>
+	      </mediaobject>
+	
+	      <para>
+	        The following table describes in short the various
+	        exporters. The most relevant for Seam is of course the "JBoss Seam Skeleton app".
+	      </para>
+	
+	      <table>
+	        <title>Code generation "Exporter" tab fields</title>
+	
+	        <tgroup cols="2">
+	          <colspec colnum="1" colwidth="1*" />
+	
+	          <colspec colnum="2" colwidth="3*" />
+	
+	          <colspec colnum="3" colwidth="0.5*" />
+	
+	          <thead>
+	            <row>
+	              <entry align="center"><para>Field</para></entry>
+	
+	              <entry align="center"><para>Description</para></entry>
+	            </row>
+	          </thead>
+	
+	          <tbody>
+	            <row>
+	              <entry><para>Generate domain code</para></entry>
+	
+	              <entry><para>Generates POJO's for all the persistent classes and
+	              components found in the given Hibernate
+	              configuration.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>JDK 1.5 constructs</para></entry>
+	
+	              <entry><para>When enabled the POJO's will use JDK 1.5
+	              constructs.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>EJB3/JSR-220 annotations</para></entry>
+	
+	              <entry><para>When enabled the POJO's will be annotated according
+	              to the EJB3/JSR-220 persistency specification.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate DAO code</para></entry>
+	
+	              <entry><para>Generates a set of DAO's for each entity
+	              found.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate Mappings</para></entry>
+	
+	              <entry><para>Generate mapping (hbm.xml) files for each
+	              entity</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate hibernate configuration
+	              file</para></entry>
+	
+	              <entry><para>Generate a hibernate.cfg.xml file. Used to keep the
+	              hibernate.cfg.xml uptodate with any new found mapping
+	              files.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate schema html-documentation</para></entry>
+	
+	              <entry><para>Generates set of html pages that documents the
+	              database schema and some of the mappings.</para></entry>
+	            </row>
+	
+	            <row>
+	              <entry><para>Generate JBoss Seam skeleton app
+	              (beta)</para></entry>
+	
+	              <entry><para>Generates a complete JBoss Seam skeleton app. The
+	              generation will include annotated POJO's, Seam controller beans
+	              and a JSP for the presentation layer. See the generated
+	              readme.txt for how to use it. </para><para>Note: this exporter
+	              generates a full application, including a build.xml thus you
+	              will get the best results if you use an output directory which
+	              is the root of your project.</para></entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </table>
+      
+      </section>
+    
+      <section>
+        <title>Generating and using the code</title>
+      
+        <para>
+          When you have finished filling out the settings, simply press "Run" to start the generation of code.
+          This might take a little while if you are reverse engineering from a database.
+        </para>
+      
+        <para>
+	      When the generation have finished you should now have a complete skeleton Seam application in the output directory.
+	      In the output directory there is a <literal>readme.txt</literal> file describing the steps needed to deploy and run the example.
+        </para>
+      
+        <para>
+          If you want to regenerate/update the skeleton code then simply run the code generation again by selecting the "Hibernate Code Generation" in the toolbar or "Run" menu. Enjoy.
+        </para>
+      </section>
+    
+    </section>
+    
+  </section>  
+  -->
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tools.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tutorial.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tutorial.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tutorial.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2710 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<chapter id="tutorial">
+    <title>Seam Tutorial</title>
+
+    <section id="try-examples">
+        <title>Try the examples</title>
+
+        <para> In this tutorial, we'll assume that you are using JBoss EAP 4.3.</para>
+
+        <para> The directory structure of each example in Seam follows this pattern: </para>
+
+        <itemizedlist>
+            <listitem>
+                <para> Web pages, images and stylesheets may be found in
+                        <filename>examples/<replaceable>registration</replaceable>/view</filename>
+                </para>
+            </listitem>
+            <listitem>
+                <para> Resources such as deployment descriptors and data import scripts may be found in
+                            <filename>examples/<replaceable>registration</replaceable>/resources</filename>
+                </para>
+            </listitem>
+            <listitem>
+                <para> Java source code may be found in
+                    <filename>examples/<replaceable>registration</replaceable>/src</filename>
+                </para>
+            </listitem>
+            <listitem>
+                <para> The Ant build script is
+                    <filename>examples/<replaceable>registration</replaceable>/build.xml</filename>
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <section>
+            <title>Running the examples on JBoss AS</title>
+
+            <para> 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 EAP embedded JBoss AS
+                installation in the <literal>build.properties</literal> file in the root folder of your Seam
+                installation, predefined location is /var/lib/jbossas. If you haven't already done so, 
+                start JBoss EAP AS now by typing <literal>bin/run.sh</literal>
+                or <literal>bin/run.bat</literal> in the root directory of your JBoss installation. </para>
+
+            <para> Now, build and deploy the example by typing <literal>ant deploy</literal> in the
+                        <filename>examples/<replaceable>registration</replaceable></filename> directory. </para>
+
+            <para> Try it out by accessing <ulink url="http://localhost:8080/seam-registration/">
+                    <literal>http://localhost:8080/seam-registration/</literal>
+                </ulink> with your web browser. </para>
+
+        </section>
+
+    </section>
+
+    <section id="registration-example">
+        <title>Your first Seam application: the registration example</title>
+
+        <para> 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. </para>
+
+        <para> We'll go slowly, since we realize you might not yet be familiar with EJB 3.0. </para>
+
+        <para> 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. </para>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/registration.png" align="center" scalefit="1"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/registration.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <section>
+            <title>Understanding the code</title>
+
+            <para> The example is implemented with two JSP pages, one entity bean and one stateless session bean. </para>
+
+            <mediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="images/register.png" align="center" />
+                </imageobject>
+                <imageobject role="html">
+                    <imagedata fileref="images/register.png" align="center"/>
+                </imageobject>
+            </mediaobject>
+
+            <para> Let's take a look at the code, starting from the "bottom". </para>
+
+            <section>
+                <title>The entity bean: <literal>User.java</literal></title>
+
+                <para> 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. </para>
+                  <!-- Can't use code hightlighting with callouts -->
+                  <example>
+                  <title></title>
+                        <programlisting role="JAVA">
+ at Entity &lt;co id="registration-entity-annotation"/&gt;
+ at Name("user")
+ at Scope(SESSION)
+ at Table(name="users")
+public class User implements Serializable
+{
+   private static final long serialVersionUID = 1881413500711441951L;
+   
+   private String username;
+   private String password;
+   private String name;
+   
+   public User(String name, String password, String username)
+   {
+      this.name = name;
+      this.password = password;
+      this.username = username;
+   }
+   
+   public User() {}
+   
+   @NotNull @Length(min=5, max=15)
+   public String getPassword()
+   {
+      return password;
+   }
+
+   public void setPassword(String password)
+   {
+      this.password = password;
+   }
+   
+   @NotNull
+   public String getName()
+   {
+      return name;
+   }
+
+   public void setName(String name)
+   {
+      this.name = name;
+   }
+   
+   @Id @NotNull @Length(min=5, max=15)
+   public String getUsername()
+   {
+      return username;
+   }
+
+   public void setUsername(String username)
+   {
+      this.username = username;
+   }
+
+}</programlisting>
+                     
+                                <para> The EJB3 standard <literal>@Entity</literal> annotation indicates that the
+                                        <literal>User</literal> class is an entity bean. </para>
+
+                                <para> A Seam component needs a <emphasis>component name</emphasis> specified by the
+                                        <literal>@Name</literal>
+                                     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>. </para>
+
+                                <para> 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
+                                        <literal>@Scope</literal>
+                                     annotation. The <literal>User</literal> bean is a session scoped component.
+                                </para>
+
+                                <para> The EJB standard <literal>@Table</literal> annotation indicates that the
+                                        <literal>User</literal> class is mapped to the <literal>users</literal> table.
+                                </para>
+
+                                <para>
+                                    <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. </para>
+
+                                <para> An empty constructor is both required by both the EJB specification and by Seam.
+                                </para>
+
+                                <para> 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). </para>
+
+                                <para> The EJB standard <literal>@Id</literal> annotation indicates the primary key
+                                    attribute of the entity bean. </para>
+                    </example>
+                    <para> 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. </para>
+                    <para> 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. </para>
+                    <para> 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. </para>
+	
+	
+            </section>
+
+            <section>
+                <title>The stateless session bean class: <literal>RegisterAction.java</literal></title>
+
+                <para> Most Seam application use session beans as JSF action listeners (you can use JavaBeans instead if
+                    you like). </para>
+                <para> 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. </para>
+
+                <para> This is the only really interesting code in the example! </para>
+                    <!-- Can't use code hightlighting with callouts -->
+                    <example>
+                    <title></title>
+
+                        <programlisting>
+ at Stateless
+ at Name("register")
+public class RegisterAction implements Register
+{
+
+   @In
+   private User user;
+   
+   @PersistenceContext
+   private EntityManager em;
+   
+   @Logger
+   private Log log;
+   
+   public String register()
+   {
+      List existing = em.createQuery(
+         "select username from User where username=#{user.username}")
+         .getResultList();
+         
+      if (existing.size()==0)
+      {
+         em.persist(user);
+         log.info("Registered new user #{user.username}");
+         return "/registered.xhtml";
+      }
+      else
+      {
+         FacesMessages.instance().add("User #{user.username} already exists");
+         return null;
+      }
+   }
+
+}</programlisting>
+
+                       
+                                <para> The EJB standard <literal>@Stateless</literal> annotation marks this class as
+                                    a stateless session bean. </para>
+
+                                <para> The
+                                        <literal>@In</literal>
+                                     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). </para>
+                       
+                                <para> The EJB standard <literal>@PersistenceContext</literal> annotation is used to
+                                    inject the EJB3 entity manager. </para>
+
+                                <para> The Seam <literal>@Logger</literal> annotation is used to inject the component's
+                                        <literal>Log</literal> instance. </para>
+
+                                <para> 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. </para>
+
+                                <para> 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? </para>
+
+                                <para> The <literal>Log</literal> API lets us easily display templated log messages.
+                                </para>
+
+                                <para> 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>
+                                </para>
+
+                                <para> 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.
+                                </para>
+                    </example>
+
+                    <para> 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. </para>
+
+                    <para> 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. </para>
+
+                    <para> 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. </para>
+	
+            </section>
+
+            <section>
+                <title>The session bean local interface: <literal>Register.java</literal></title>
+
+                <para>Naturally, our session bean needs a local interface.</para>
+
+                 <example><title></title>
+                 <programlisting role="JAVA">
+ at Local
+public interface Register
+{
+   public String register();
+}</programlisting></example>
+                
+
+                <para> That's the end of the Java code. Now onto the deployment descriptors. </para>
+
+            </section>
+
+            <section>
+                <title>The Seam component deployment descriptor: <literal>components.xml</literal></title>
+
+                <para> 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. </para>
+
+                <para> 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: </para>
+                 <example>
+                 <title></title>
+                <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;components xmlns="http://jboss.com/products/seam/components"
+            xmlns:core="http://jboss.com/products/seam/core"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation=
+                "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd 
+                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd"&gt;
+            
+     &lt;core:init jndi-pattern="@jndiPattern@"/&gt;
+     
+&lt;/components&gt; </programlisting></example>
+
+                <para> 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.</para>
+
+            </section>
+
+            <section>
+                <title>The web deployment description: <literal>web.xml</literal></title>
+
+                <para> The presentation layer for our mini-application will be deployed in a WAR. So we'll need a web
+                    deployment descriptor. </para>
+                     <example><title></title>
+                    <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    <!-- Seam -->
+
+    &lt;listener&gt;
+    	&lt;listener-class&gt;org.jboss.seam.servlet.SeamListener&lt;/listener-class&gt;
+    &lt;/listener&gt;
+
+    <!-- JSF -->
+              
+    &lt;listener&gt;
+    	&lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt;
+    &lt;/listener&gt;
+    
+    &lt;context-param&gt;
+    	&lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt;
+    	&lt;param-value&gt;.xhtml&lt;/param-value&gt;
+    &lt;/context-param&gt;
+              
+    &lt;servlet&gt;
+    	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
+    	&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
+    	&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
+    &lt;/servlet&gt;
+
+    &lt;servlet-mapping&gt;
+    	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
+    	&lt;url-pattern&gt;*.seam&lt;/url-pattern&gt;
+    &lt;/servlet-mapping&gt;
+              
+    &lt;session-config&gt;
+    	&lt;session-timeout&gt;10&lt;/session-timeout&gt;
+    &lt;/session-config&gt;
+
+&lt;/web-app&gt;</programlisting></example>
+                
+
+                <para> This <literal>web.xml</literal> file configures Seam and JSF. The configuration you see here is
+                    pretty much identical in all Seam applications. </para>
+
+            </section>
+
+            <section>
+                <title>The JSF configration: <literal>faces-config.xml</literal></title>
+
+                <para> 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. </para>
+            
+                <example>
+                <title></title>
+                    <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;faces-config version="1.2"
+              xmlns="http://java.sun.com/xml/ns/javaee"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"&gt;
+
+    <!-- Facelets support -->
+    &lt;application&gt;
+    	&lt;view-handler&gt;com.sun.facelets.FaceletViewHandler&lt;/view-handler&gt;
+    &lt;/application&gt;
+    
+&lt;/faces-config&gt;</programlisting>
+                </example>
+                
+
+                <para> 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. </para>
+
+                <para> In fact, once you have all the basic descriptors set up, the <emphasis>only</emphasis> XML you
+                    need to write as you add new functionality to a Seam application is orchestration: navigation rules 
+                    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. </para>
+
+                <para> In this simple example, we don't even need a navigation rule, since we decided to embed the view
+                    id in our action code. </para>
+
+            </section>
+
+            <section>
+                <title>The EJB deployment descriptor: <literal>ejb-jar.xml</literal></title>
+
+                <para> The <literal>ejb-jar.xml</literal> file integrates Seam with EJB3, by attaching the
+                        <literal>SeamInterceptor</literal> to all session beans in the archive. </para>
+
+                <programlisting role="XML">
+&lt;ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                             http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+			     version="3.0"&gt;
+         
+&lt;interceptors&gt;
+	&lt;interceptor&gt;
+		&lt;interceptor-class&gt;org.jboss.seam.ejb.SeamInterceptor&lt;/interceptor-class&gt;
+	&lt;/interceptor&gt;
+&lt;/interceptors&gt;
+   
+&lt;assembly-descriptor&gt;
+	&lt;interceptor-binding&gt;
+		&lt;ejb-name&gt;*&lt;/ejb-name&gt;
+		&lt;interceptor-class&gt;org.jboss.seam.ejb.SeamInterceptor&lt;/interceptor-class&gt;
+	&lt;/interceptor-binding&gt;
+&lt;/assembly-descriptor&gt;
+   
+&lt;/ejb-jar&gt;</programlisting>
+
+            </section>
+
+            <section>
+                <title>The EJB persistence deployment descriptor: <literal>persistence.xml</literal></title>
+
+                <para> 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. </para>
+
+                <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;persistence xmlns="http://java.sun.com/xml/ns/persistence" 
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
+                                 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
+				 version="1.0"&gt;
+
+&lt;persistence-unit name="userDatabase"&gt;
+	&lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;
+		&lt;jta-data-source>java:/DefaultDS&lt;/jta-data-source&gt;
+	&lt;properties&gt;
+	&lt;property name="hibernate.hbm2ddl.auto" value="create-drop"&gt;
+	&lt;/properties&gt;
+&lt;/persistence-unit&gt;
+    
+&lt;/persistence&gt;</programlisting>
+
+            </section>
+
+            <section>
+                <title>The view: <literal>register.xhtml</literal> and <literal>registered.xhtml</literal></title>
+
+                <para> 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.</para>
+
+                <example>
+                <title></title>
+                    <programlisting role="XHTML">
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
+
+&lt;html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:s="http://jboss.com/products/seam/taglib"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"&gt;
+
+&lt;head&gt;
+	&lt;title&gt;Register New User&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+	&lt;f:view&gt;
+	&lt;h:form&gt;
+		&lt;s:validateAll&gt;
+		&lt;h:panelGrid columns="2"&gt;
+		    Username: &lt;h:inputText value="#{user.username}" required="true"/&gt;
+	    Real Name: &lt;h:inputText value="#{user.name}" required="true"/&gt;
+	    Password: &lt;h:inputSecret value="#{user.password}" required="true"/&gt;
+	    &lt;/h:panelGrid&gt;
+		    &lt;/s:validateAll&gt;
+		    &lt;h:messages/&gt;
+	    &lt;h:commandButton value="Register" action="#{register.register}"/&gt;
+	&lt;/h:form&gt;
+	&lt;/f:view&gt;
+&lt;/body&gt;
+
+&lt;/html&gt;</programlisting></example>
+                
+
+                <para> The only thing here that is specific to Seam is the
+                    <literal>&lt;s:validateAll&gt;</literal> tag. This JSF component tells JSF to validate all
+                    the contained input fields against the Hibernate Validator annotations specified on the entity bean. </para>
+
+                <example>
+                  <title></title>
+                    <programlisting role="XHTML">
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
+&lt;html xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"&gt;
+
+&lt;head&gt;
+&lt;title&gt;Successfully Registered New User&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+	&lt;f:view&gt;
+         	Welcome, #{user.name}, you are successfully registered as #{user.username}.
+	 &lt;/f:view&gt;
+&lt;/body&gt;
+
+ &lt;/html&gt;</programlisting>
+                </example>
+
+
+                <para> This is a boring old Facelets page using some embedded EL. There is nothing specific to Seam
+                    here. </para>
+
+            </section>
+
+            <section>
+                <title>The EAR deployment descriptor: <literal>application.xml</literal></title>
+
+                <para> Finally, since our application is deployed as an EAR, we need a deployment descriptor there, too. </para>
+
+                <example id="registration-application-xml"><title>registration application</title>
+                  <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;application xmlns="http://java.sun.com/xml/ns/javaee" 
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                                 http://java.sun.com/xml/ns/javaee/application_5.xsd"
+				 version="5"&gt;
+             
+&lt;display-name&gt;Seam Registration&lt;/display-name&gt;
+
+&lt;module&gt;
+	&lt;web&gt;
+		&lt;web-uri&gt;jboss-seam-registration.war&lt;/web-uri&gt;
+		 &lt;context-root&gt;/seam-registration&lt;/context-root&gt;
+	&lt;/web&gt;
+&lt;/module&gt;
+&lt;module&gt;
+	&lt;ejb&gt;jboss-seam-registration.jar&lt;/ejb&gt;
+&lt;/module&gt;
+&lt;module&gt;
+	 &lt;ejb&gt;jboss-seam.jar&lt;/ejb&gt;
+&lt;/module&gt;
+&lt;module&gt;
+	&lt;java&gt;jboss-el.jar&lt;/java&gt;
+&lt;/module&gt;
+
+ &lt;/application&gt;</programlisting>
+                </example>
+
+                <para> This deployment descriptor links modules in the enterprise archive and binds the web application
+                    to the context root <literal>/seam-registration</literal>. </para>
+
+            <para> We've now seen <emphasis>all</emphasis> the files in the entire application! </para>
+
+        </section>
+</section>
+
+        <section>
+            <title>How it works</title>
+
+            <para> 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. </para>
+            <para> 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. </para>
+            <para> 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. </para>
+            <para> Seam intercepts the method call and injects the <literal>User</literal> entity from the Seam session
+                context, before continuing the invocation. </para>
+            <para> 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. </para>
+            <para> 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. </para>
+
+        </section>
+
+    </section>
+
+    <section id="messages">
+        <title>Clickable lists in Seam: the messages example</title>
+
+        <para> 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>&lt;h:dataTable&gt;</literal>. The messages example
+            demonstrates this functionality. </para>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/messages.png" align="center" scalefit="1"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/messages.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <section>
+            <title>Understanding the code</title>
+            <para> The message list example has one entity bean, <literal>Message</literal>, one session bean,
+                    <literal>MessageListBean</literal> and one JSP. </para>
+
+            <section>
+                <title>The entity bean: <literal>Message.java</literal></title>
+
+                <para> 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: </para>
+
+                <example>
+                    <title></title>
+                    <programlisting role="JAVA">
+ at Entity
+ at Name("message")
+ at Scope(EVENT)
+public class Message implements Serializable
+{
+   private Long id;
+   private String title;
+   private String text;
+   private boolean read;
+   private Date datetime;
+   
+   @Id @GeneratedValue
+   public Long getId() {
+      return id;
+   }
+   public void setId(Long id) {
+      this.id = id;
+   }
+   
+   @NotNull @Length(max=100)
+   public String getTitle() {
+      return title;
+   }
+   public void setTitle(String title) {
+      this.title = title;
+   }
+   
+   @NotNull @Lob
+   public String getText() {
+      return text;
+   }
+   public void setText(String text) {
+      this.text = text;
+   }
+   
+   @NotNull
+   public boolean isRead() {
+      return read;
+   }
+   public void setRead(boolean read) {
+      this.read = read;
+   }
+   
+   @NotNull 
+   @Basic @Temporal(TemporalType.TIMESTAMP)
+   public Date getDatetime() {
+      return datetime;
+   }
+   public void setDatetime(Date datetime) {
+      this.datetime = datetime;
+   }
+   
+}</programlisting>
+                 </example>
+
+            </section>
+
+            <section>
+                <title>The stateful session bean: <literal>MessageManagerBean.java</literal></title>
+
+                <para> 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. </para>
+
+                <para> 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&#8212;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. </para>
+
+                <para> We want to cache the list of messages in memory between server requests, so we will make this a
+                    stateful session bean. </para>
+                 <!-- Can't use code hightlighting with callouts -->
+                <example>
+                    <title></title>
+                        <programlisting>
+ at Stateful
+ at Scope(SESSION)
+ at Name("messageManager")
+public class MessageManagerBean implements Serializable, MessageManager
+{
+
+   @DataModel
+   private List&lt;Message&gt; messageList;
+   
+   @DataModelSelection
+   @Out(required=false)
+   private Message message;
+   
+   @PersistenceContext(type=EXTENDED)
+   private EntityManager em;
+   
+   @Factory("messageList")
+   public void findMessages()
+   {
+      messageList = em.createQuery("from Message msg order by msg.datetime desc")
+                      .getResultList();
+   }
+   
+   public void select()
+   {
+      message.setRead(true);
+   }
+   
+   public void delete()
+   {
+      messageList.remove(message);
+      em.remove(message);
+      message=null;
+   }
+   
+   @Remove
+   public void destroy() {}
+
+}</programlisting>
+                       
+                                <para> 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>&lt;h:dataTable&gt;</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>. </para>
+                            
+                                <para> The <literal>@DataModelSelection</literal> annotation tells Seam to inject the
+                                        <literal>List</literal> element that corresponded to the clicked link. </para>
+                           
+                                <para> The <literal>@Out</literal> annotation then exposes the selected value directly
+                                    to the page. So every 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>. </para>
+                        
+                                <para> 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>. </para>
+                      
+                                <para> 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>. </para>
+                    
+                                <para> The <literal>select()</literal> action listener method marks the selected
+                                        <literal>Message</literal> as read, and updates it in the database. </para>
+
+                                <para> The <literal>delete()</literal> action listener method removes the selected
+                                        <literal>Message</literal> from the database. </para>
+
+                                <para> 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.
+                                </para>
+                </example>
+
+                <para> 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.) </para>
+
+            </section>
+
+            <section>
+                <title>The session bean local interface: <literal>MessageManager.java</literal></title>
+
+                <para> All session beans have a business interface, of course. </para>
+
+                <programlisting role="JAVA">
+ at Local
+public interface MessageManager
+{
+   public void findMessages();
+   public void select();
+   public void delete();
+   public void destroy();
+}</programlisting>
+
+                <para> From now on, we won't show local interfaces in our code examples. </para>
+
+                <para> 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. </para>
+
+            </section>
+
+            <section>
+                <title>The view: <literal>messages.jsp</literal></title>
+
+                <para> The JSP page is a straightforward use of the JSF <literal>&lt;h:dataTable&gt;</literal>
+                    component. Again, nothing specific to Seam. </para>
+                <example>
+                    <title></title>
+                    <programlisting role="XHTML">
+&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %&gt;
+&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;
+&lt;html&gt;
+	&lt;head&gt;
+		&lt;title&gt;Messages&lt;/title&gt;
+	&lt;/head&gt;
+	&lt;body&gt;
+		&lt;f:view&gt;
+		&lt;h:form&gt;
+			&lt;h2&gt;Message List&lt;/h2&gt;
+			&lt;h:outputText value="No messages to display" 
+				    rendered="#{messageList.rowCount==0}"/&gt;
+		   	&lt;h:dataTable var="msg" value="#{messageList}" 
+		    rendered="#{messageList.rowCount>0}"&gt;
+			&lt;h:column&gt;
+				&lt;f:facet name="header"&gt;
+					&lt;h:outputText value="Read"/&gt;
+		    		&lt;/f:facet&gt;
+			    	&lt;h:selectBooleanCheckbox value="#{msg.read}" disabled="true"/&gt;
+		    	&lt;/h:column&gt;
+			&lt;h:column&gt;
+			    &lt;f:facet name="header"&gt;
+				    &lt;h:outputText value="Title"/&gt;
+		    	    &lt;/f:facet&gt;
+			    &lt;h:commandLink value="#{msg.title}" action="#{messageManager.select}"/&gt;
+		        &lt;/h:column&gt;
+			&lt;h:column&gt;
+			    &lt;f:facet name="header"&gt;
+			    &lt;h:outputText value="Date/Time"/&gt;
+		    	    &lt;/f:facet&gt;
+			    &lt;h:outputText value="#{msg.datetime}"&gt;
+			    &lt;f:convertDateTime type="both" dateStyle="medium" timeStyle="short"/&gt;
+		    	    &lt;/h:outputText&gt;
+			&lt;/h:column&gt;
+			&lt;h:column&gt;
+			    &lt;h:commandButton value="Delete" action="#{messageManager.delete}"/&gt;
+		        &lt;/h:column&gt;
+			    &lt;/h:dataTable&gt;
+			    &lt;h3&gt;&lt;h:outputTex&gt; value="#{message.title}"/&gt;&lt;/h3&gt;
+				    &lt;div&gt;&lt;h:outputText value="#{message.text}"/&gt;&lt;/div&gt;
+				    &lt;/h:form&gt;
+			    &lt;/f:view&gt;
+	&lt;/body&gt;
+&lt;/html&gt;</programlisting>
+                </example>
+                
+
+            </section>
+
+        </section>
+
+        <section>
+            <title>How it works</title>
+
+            <para> 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>&lt;h:dataTable&gt;</literal>. </para>
+
+            <para> When the user clicks the <literal>&lt;h:commandLink&gt;</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. </para>
+
+            <para> If the user clicks the <literal>&lt;h:commandButton&gt;</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. </para>
+
+        </section>
+
+    </section>
+
+    <section id="todo">
+        <title>Seam and jBPM: the todo list example</title>
+
+        <para> 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. </para>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/todo.png" align="center" scalefit="1"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/todo.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <section>
+            <title>Understanding the code</title>
+            <para> 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: </para>
+             <!-- Can't use code hightlighting with callouts -->
+             <example>
+                 <title></title>
+                    <programlisting>
+&lt;process-definition name="todo"&gt;
+   
+&lt;start-state name="start"&gt;
+&lt;transition to="todo"/&gt;
+&lt;/start-state&gt;
+   
+&lt;task-node name="todo"&gt;
+&lt;task name="todo" description="#{todoList.description}"&gt;
+&lt;assignment actor-id="#{actor.id}"/&gt;
+&lt;/task&gt;
+&lt;transition to="done"/&gt;
+&lt;/task-node&gt;
+   
+&lt;end-state name="done"/&gt;
+   
+&lt;/process-definition&gt;</programlisting>
+                   
+                            <para> The <literal>&lt;start-state&gt;</literal> node represents the logical start
+                                of the process. When the process starts, it immediately transitions to the
+                                <literal>todo</literal> node. </para>
+                      
+                            <para> The <literal>&lt;task-node&gt;</literal> node represents a <emphasis>wait
+                                    state</emphasis>, where business process execution pauses, waiting for one or more
+                                tasks to be performed. </para>
+                    
+                            <para> The <literal>&lt;task&gt;</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). </para>
+                    
+                            <para> 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. </para>
+                     
+                            <para> The <literal>&lt;end-state&gt;</literal> node defines the logical end of the
+                                business process. When execution reaches this node, the process instance is destroyed.
+                            </para>
+            </example>
+            
+
+            <para> If we view this process definition using the process definition editor provided by JBossIDE, this is
+                what it looks like: </para>
+
+            <mediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="images/todo-process.png" align="center"/>
+                </imageobject>
+                <imageobject role="html">
+                    <imagedata fileref="images/todo-process.png" align="center"/>
+                </imageobject>
+            </mediaobject>
+
+            <para> This document defines our <emphasis>business process</emphasis> as a graph of nodes. This is the most
+                trivial possible business process: there is one <emphasis>task</emphasis> to be performed, and when that
+                task is complete, the business process ends. </para>
+
+            <para> 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.) </para>
+            <example>
+               <title></title>
+               <programlisting role="JAVA">
+ at Name("login")
+public class Login {
+   
+   @In
+   private Actor actor;
+   
+   private String user;
+
+   public String getUser() {
+      return user;
+   }
+
+   public void setUser(String user) {
+      this.user = user;
+   }
+   
+   public String login()
+   {
+      actor.setId(user);
+      return "/todo.jsp";
+   }
+}</programlisting>
+            </example>
+            
+
+            <para> Here we see the use of <literal>@In</literal> to inject the built-in <literal>Actor</literal>
+                component. </para>
+
+            <para> The JSP itself is trivial: </para>
+
+            <programlisting role="XHTML">
+&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;
+&lt;html&gt;
+	&lt;head&gt;
+		    &lt;title&gt;Login&lt;/title&gt;
+	&lt;/head&gt;
+	&lt;body&gt;
+	    &lt;h1&gt;Login&lt;/h1&gt;
+    	    &lt;f:view&gt;
+    		&lt;h:form&gt;
+    			&lt;div&gt;
+    				&lt;h:inputText value="#{login.user}"/&gt;
+				&lt;h:commandButton value="Login" action="#{login.login}"/&gt;
+			&lt;/div&gt;
+    		&lt;/h:form&gt;
+    	    &lt;/f:view&gt;
+       &lt;/body&gt;
+&lt;/html&gt;</programlisting>
+
+            
+
+            <para> The second JavaBean is responsible for starting business process instances, and ending tasks. </para>
+
+            <!-- Can't use code hightlighting with callouts -->
+            <example>
+               <title></title>
+                 <programlisting>
+ at Name("todoList")
+public class TodoList {
+   
+   private String description;
+   
+   public String getDescription()
+   {
+      return description;
+   }
+
+   public void setDescription(String description) {
+      this.description = description;
+   }
+   
+   @CreateProcess(definition="todo")
+   public void createTodo() {}
+   
+   @StartTask @EndTask
+   public void done() {}
+
+}</programlisting>
+                 
+                            <para> The description property accepts user input form the JSP page, and exposes it to the
+                                process definition, allowing the task description to be set. </para>
+                  
+                            <para> The Seam <literal>@CreateProcess</literal> annotation creates a new jBPM process
+                                instance for the named process definition. </para>
+                   
+                            <para> 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. </para>
+            </example>
+            
+
+            <para> 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. </para>
+
+            <para> Finally, the meat of the application is in <literal>todo.jsp</literal>: </para>
+            <example>
+                <title></title>
+                <programlisting role="XHTML">
+&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %&gt;
+&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;
+&lt;%@ taglib uri="http://jboss.com/products/seam/taglib" prefix="s" %&gt;
+&lt;html&gt;
+	&lt;head&gt;
+		&lt;title&gt;Todo List&lt;/title&gt;
+	&lt;/head&gt;
+	&lt;body&gt;
+		&lt;h1&gt;Todo List&lt;/h1&gt;
+		&lt;f:view&gt;
+			&lt;h:form id="list"&gt;
+			&lt;div&gt;
+			&lt;h:outputText value="There are no todo items." 
+			rendered="#{empty taskInstanceList}"/&gt;
+		&lt;h:dataTable value="#{taskInstanceList}" var="task" 
+		rendered="#{not empty taskInstanceList}"&gt;
+			&lt;h:column&gt;
+				&lt;f:facet name="header"&gt;
+					&lt;h:outputText value="Description"/&gt;
+				&lt;/f:facet&gt;
+			&lt;h:inputText value="#{task.description}"/&gt;
+			&lt;/h:column&gt;
+			&lt;h:column&gt;
+				&lt;f:facet name="header"&gt;
+					&lt;h:outputText value="Created"/&gt;
+				&lt;/f:facet&gt;
+				&lt;h:outputText value="#{task.taskMgmtInstance.processInstance.start}"&gt;
+					&lt;f:convertDateTime type="date"/&gt;
+				&lt;/h:outputText&gt;
+			&lt;/h:column&gt;
+			&lt;h:column&gt;
+				&lt;f:facet name="header"&gt;
+					&lt;h:outputText value="Priority"/&gt;
+				&lt;/f:facet&gt;
+				&lt;h:inputText value="#{task.priority}" style="width: 30"/&gt;
+			&lt;/h:column&gt;
+			&lt;h:column&gt;
+				&lt;f:facet name="header"&gt;
+					&lt;h:outputText value="Due Date"/&gt;
+				&lt;/f:facet&gt;
+				&lt;h:inputText value="#{task.dueDate}" style="width: 100"&gt;
+				&lt;f:convertDateTime type="date" dateStyle="short"/&gt;
+				&lt;/h:inputText&gt;
+			&lt;/h:column&gt;
+			&lt;h:column&gt;
+				&lt;s:button value="Done" action="#{todoList.done}" taskInstance="#{task}"/&gt;
+			&lt;/h:column&gt;
+		&lt;/h:dataTable&gt;
+		&lt;/div&gt;
+		&lt;div&gt;
+		&lt;h:messages/&gt;
+		&lt;/div&gt;
+		&lt;div&gt;
+		&lt;h:commandButton value="Update Items" action="update"/&gt;
+		&lt;/div&gt;
+		&lt;/h:form&gt;
+		&lt;h:form id="new"&gt;
+		&lt;div&gt;
+		&lt;h:inputText value="#{todoList.description}"/&gt;
+		&lt;h:commandButton value="Create New Item" action="#{todoList.createTodo}"/&gt;
+		&lt;/div&gt;
+		&lt;/h:form&gt;
+		&lt;/f:view&gt;
+	&lt;/body&gt;
+&lt;/html&gt;</programlisting>
+            </example>
+            
+
+            <para> Let's take this one piece at a time. </para>
+
+            <para> 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. </para>
+            <example>
+                <title></title>
+                <programlisting role="XHTML">
+&lt;h:form id="list"&gt;
+&lt;div&gt;
+	&lt;h:outputText value="There are no todo items." rendered="#{empty taskInstanceList}"/&gt;
+		&lt;h:dataTable value="#{taskInstanceList}" var="task" 
+		rendered="#{not empty taskInstanceList}"&gt;
+         ...
+	 &lt;/h:dataTable&gt;
+&lt;/div&gt;
+&lt;/h:form&gt;</programlisting>
+            </example>
+
+            <para> 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. </para>
+
+            <programlisting role="XHTML">
+&lt;h:column&gt;
+	&lt;f:facet name="header"&gt;
+		&lt;h:outputText value="Description"/&gt;
+	&lt;/f:facet&gt;
+	&lt;h:inputText value="#{task.description}"/&gt;
+&lt;/h:column&gt;
+&lt;h:column&gt;
+	&lt;f:facet name="header"&gt;
+		&lt;h:outputText value="Created"/&gt;
+	&lt;/f:facet&gt;
+	&lt;h:outputText value="#{task.taskMgmtInstance.processInstance.start}"&gt;
+		&lt;f:convertDateTime type="date"/&gt;
+	&lt;/h:outputText&gt;
+&lt;/h:column&gt;
+&lt;h:column&gt;
+	&lt;f:facet name="header"&gt;
+		&lt;h:outputText value="Priority"/&gt;
+	&lt;/f:facet&gt;
+	&lt;h:inputText value="#{task.priority}" style="width: 30"/&gt;
+&lt;/h:column&gt;
+&lt;h:column&gt;
+	&lt;f:facet name="header"&gt;
+		&lt;h:outputText value="Due Date"/&gt;
+	&lt;/f:facet&gt;
+	&lt;h:inputText value="#{task.dueDate}" style="width: 100"&gt;
+		&lt;f:convertDateTime type="date" dateStyle="short"/&gt;
+	&lt;/h:inputText&gt;
+&lt;/h:column&gt;</programlisting>
+
+
+            <para> 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: </para>
+
+            <programlisting role="XHTML">
+&lt;h:column&gt;
+	&lt;s:button value="Done" action="#{todoList.done}" taskInstance="#{task}"/&gt;
+&lt;/h:column&gt;</programlisting>
+
+            <para> (Note that this is using a Seam <literal>&lt;s:button&gt;</literal> JSF control from the
+                    <literal>seam-ui.jar</literal> package.) </para>
+
+            <para> 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: </para>
+
+            <programlisting role="XHTML">
+&lt;h:commandButton value="Update Items" action="update"/&gt;
+	    </programlisting>
+
+            <para> A second form on the page is used to create new items, by calling the action method annotated
+                    <literal>@CreateProcess</literal>. </para>
+
+            <programlisting role="XHTML">
+&lt;h:form id="new"&gt;
+    &lt;div&gt;
+        &lt;h:inputText value="#{todoList.description}"/&gt;
+        &lt;h:commandButton value="Create New Item" action="#{todoList.createTodo}"/&gt;
+    &lt;/div&gt;
+&lt;/h:form&gt;</programlisting>
+
+            <para> There are several other files needed for the example, but they are just standard jBPM and Seam
+                configuration and not very interesting. </para>
+        </section>
+
+        <section>
+            <title>How it works</title>
+            <para>TODO</para>
+        </section>
+
+    </section>
+
+    <section id="numberguess">
+        <title>Seam pageflow: the numberguess example</title>
+
+        <para> 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. </para>
+
+        <para> Seam allows you to use a jPDL process definition to define pageflow. The simple number guessing example
+            shows how this is done. </para>
+
+        <mediaobject>
+            <imageobject role="fo">
+                <imagedata fileref="images/numberguess.png" align="center" scalefit="1"/>
+            </imageobject>
+            <imageobject role="html">
+                <imagedata fileref="images/numberguess.png" align="center"/>
+            </imageobject>
+        </mediaobject>
+
+        <section>
+            <title>Understanding the code</title>
+            <para> The example is implemented using one JavaBean, three JSP pages and a jPDL pageflow definition. Let's
+                begin with the pageflow: </para>
+             <!-- Can't use code hightlighting with callouts -->
+             <example>
+                <title></title>
+                 <programlisting>
+&lt;pageflow-definition 
+        xmlns="http://jboss.com/products/seam/pageflow"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://jboss.com/products/seam/pageflow 
+                            http://jboss.com/products/seam/pageflow-2.1.xsd"
+			    name="numberGuess"&gt;
+   
+&lt;start-page name="displayGuess" view-id="/numberGuess.jspx"&gt;
+	&lt;redirect/&gt;
+		 &lt;transition name="guess" to="evaluateGuess"&gt;
+			 &lt;action expression="#{numberGuess.guess}"/&gt;
+		 &lt;/transition&gt;
+			 &lt;transition name="giveup" to="giveup"/&gt;
+		 &lt;/start-page&gt;
+   
+			 &lt;decision name="evaluateGuess" expression="#{numberGuess.correctGuess}"&gt;
+			 &lt;transition name="true" to="win"/&gt;
+		 &lt;transition name="false" to="evaluateRemainingGuesses"/&gt;
+		 &lt;/decision&gt;
+   
+			 &lt;decision name="evaluateRemainingGuesses" expression="#{numberGuess.lastGuess}"&gt;
+			 &lt;transition name="true" to="lose"/&gt;
+		 &lt;transition name="false" to="displayGuess"/&gt;
+		 &lt;/decision&gt;
+   
+			 &lt;page name="giveup" view-id="/giveup.jspx"&gt;
+			 &lt;redirect/&gt;
+		 &lt;transition name="yes" to="lose"/&gt;
+		 &lt;transition name="no" to="displayGuess"/&gt;
+		 &lt;/page&gt;
+   
+			 &lt;page name="win" view-id="/win.jspx"&gt;
+			 &lt;redirect/&gt;
+		 &lt;end-conversation/&gt;
+		 &lt;/page&gt;
+   
+			 &lt;page name="lose" view-id="/lose.jspx"&gt;
+			 &lt;redirect/&gt;
+		 &lt;end-conversation/&gt;
+		 &lt;/page&gt;
+   
+&lt;/pageflow-definition&gt;</programlisting>
+                   
+                            <para> The <literal>&lt;page&gt;</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.) </para>
+                        
+                            <para> The <literal>&lt;transition&gt;</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. </para>
+                    
+                            <para> A transition <literal>&lt;action&gt;</literal> is just like a JSF action,
+                                except that it occurs when a jBPM transition occurs. The transition action can invoke
+                                any Seam component. </para>
+                        
+                            <para> A <literal>&lt;decision&gt;</literal> node branches the pageflow, and
+                                determines the next node to execute by evaluating a JSF EL expression. </para>
+            </example>
+                
+
+            <para> Here is what the pageflow looks like in the JBoss Developer Studio pageflow editor: </para>
+
+            <mediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="images/numberguess-pageflow.png" align="center" scalefit="1"/>
+                </imageobject>
+                <imageobject role="html">
+                    <imagedata fileref="images/numberguess-pageflow.png" align="center"/>
+                </imageobject>
+            </mediaobject>
+
+            <para> Now that we have seen the pageflow, it is very, very easy to understand the rest of the application! </para>
+
+            <para> Here is the main page of the application, <literal>numberGuess.jspx</literal>: </para>
+
+            <example>
+                <title></title>
+                <programlisting role="XHTML">
+&lt;?xml version="1.0"?&gt;
+&lt;jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
+          xmlns:h="http://java.sun.com/jsf/html"
+          xmlns:f="http://java.sun.com/jsf/core"
+          xmlns:s="http://jboss.com/products/seam/taglib"
+          xmlns="http://www.w3.org/1999/xhtml"
+	  version="2.0"&gt;
+&lt;jsp:output doctype-root-element="html" 
+              doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+	      doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/&gt;
+&lt;jsp:directive.page contentType="text/html"/&gt;
+&lt;html&gt;
+	&lt;head&gt;
+		&lt;title&gt;Guess a number...&lt;/title&gt;
+		&lt;link href="niceforms.css" rel="stylesheet" type="text/css" /&gt;
+		&lt;script language="javascript" type="text/javascript" src="niceforms.js" /&gt;
+	&lt;/head&gt;
+	&lt;body&gt;
+		&lt;h1&gt;Guess a number...&lt;/h1&gt;
+		&lt;f:view&gt;
+		&lt;h:form styleClass="niceform"&gt;
+	    
+		&lt;div&gt;
+			&lt;h:messages globalOnly="true"/&gt;
+			&lt;h:outputText value="Higher!" rendered="#{numberGuess.randomNumber gt numberGuess.currentGuess}"/&gt;
+			&lt;h:outputText value="Lower!" 
+rendered="#{numberGuess.randomNumber lt numberGuess.currentGuess}"/&gt;
+		&lt;/div&gt;
+		
+		&lt;div&gt;
+        I'm thinking of a number between 
+			&lt;h:outputText value="#{numberGuess.smallest}"/&gt; and 
+			&lt;h:outputText value="#{numberGuess.biggest}"/&gt;. You have 
+			&lt;h:outputText value="#{numberGuess.remainingGuesses}"/&gt; guesses.
+			&lt;/div&gt;
+        
+		&lt;div&gt;
+        Your guess: 
+			&lt;h:inputText value="#{numberGuess.currentGuess}" id="inputGuess" 
+                     required="true" size="3" 
+		     rendered="#{(numberGuess.biggest-numberGuess.smallest) gt 20}"&gt;
+			&lt;f:validateLongRange maximum="#{numberGuess.biggest}" 
+	minimum="#{numberGuess.smallest}"/&gt;
+			&lt;/h:inputText&gt;
+			&lt;h:selectOneMenu value="#{numberGuess.currentGuess}" 
+                         id="selectGuessMenu" required="true"
+                         rendered="#{(numberGuess.biggest-numberGuess.smallest) le 20 and 
+			 (numberGuess.biggest-numberGuess.smallest) gt 4}"&gt;
+			&lt;s:selectItems value="#{numberGuess.possibilities}" var="i" label="#{i}"/&gt;
+			&lt;/h:selectOneMenu&gt;
+			&lt;h:selectOneRadio value="#{numberGuess.currentGuess}" id="selectGuessRadio" 
+                          required="true"
+			  rendered="#{(numberGuess.biggest-numberGuess.smallest) le 4}"&gt;
+			&lt;s:selectItems value="#{numberGuess.possibilities}" var="i" label="#{i}"/&gt;
+			&lt;/h:selectOneRadio&gt;
+			&lt;h:commandButton value="Guess" action="guess"/&gt;
+			&lt;s:button value="Cheat" view="/confirm.jspx"/&gt;
+			&lt;s:button value="Give up" action="giveup"/&gt;
+		&lt;/div&gt;
+		
+		&lt;div&gt;
+			&lt;h:message for="inputGuess" style="color: red"/&gt;
+		&lt;/div&gt;
+        
+		&lt;/h:form&gt;
+		&lt;/f:view&gt;
+	&lt;/body&gt;
+&lt;/html&gt;
+&lt;/jsp:root&gt;</programlisting>
+            </example>
+            
+
+            <para> Notice how the command button names the <literal>guess</literal> transition instead of calling an
+                action directly. </para>
+
+            <para> The <literal>win.jspx</literal> page is predictable: </para>
+            <example>
+                <title></title>
+                <programlisting role="JSP">
+&lt;jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
+          xmlns:h="http://java.sun.com/jsf/html"
+          xmlns:f="http://java.sun.com/jsf/core"
+          xmlns="http://www.w3.org/1999/xhtml"
+          version="2.0">
+			&lt;jsp:output doctype-root-element="html"
+              doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+              doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+		&lt;jsp:directive.page contentType="text/html"/>
+		&lt;html>
+			&lt;head>
+			&lt;title>You won!&lt;/title>
+				&lt;link href="niceforms.css" rel="stylesheet" type="text/css" />
+		&lt;/head>
+			&lt;body>
+			&lt;h1>You won!&lt;/h1>
+				&lt;f:view>
+			Yes, the answer was &lt;h:outputText value="#{numberGuess.currentGuess}" />.
+		It took you &lt;h:outputText value="#{numberGuess.guessCount}" /> guesses.
+		&lt;h:outputText value="But you cheated, so it doesn't count!" 
+                    rendered="#{numberGuess.cheat}"/>
+		Would you like to &lt;a href="numberGuess.seam">play again&lt;/a&gt;?
+				&lt;/f:view&gt;
+			&lt;/body&gt;
+			&lt;/html&gt;
+			&lt;/jsp:root&gt;
+</programlisting>
+            </example>
+            
+
+            <para> As is <literal>lose.jspx</literal> (which I can't be bothered copy/pasting). Finally, the JavaBean
+                Seam component: </para>
+             <!-- Can't use code hightlighting with callouts -->
+             <example>
+                 <title></title>
+                 <programlistingco>
+                 <areaspec>
+                     <area id="numberguess-create" coords="13"/>
+                 </areaspec>
+                 <programlisting>
+ at Name("numberGuess")
+ at Scope(ScopeType.CONVERSATION)
+public class NumberGuess implements Serializable {
+   
+   private int randomNumber;
+   private Integer currentGuess;
+   private int biggest;
+   private int smallest;
+   private int guessCount;
+   private int maxGuesses;
+   private boolean cheated;
+   
+   @Create
+   public void begin()
+   {
+      randomNumber = new Random().nextInt(100);
+      guessCount = 0;
+      biggest = 100;
+      smallest = 1;
+   }
+   
+   public void setCurrentGuess(Integer guess)
+   {
+      this.currentGuess = guess;
+   }
+   
+   public Integer getCurrentGuess()
+   {
+      return currentGuess;
+   }
+   
+   public void guess()
+   {
+      if (currentGuess>randomNumber)
+      {
+         biggest = currentGuess - 1;
+      }
+      if (currentGuess&lt;randomNumber)
+      {
+         smallest = currentGuess + 1;
+      }
+      guessCount ++;
+   }
+   
+   public boolean isCorrectGuess()
+   {
+      return currentGuess==randomNumber;
+   }
+   
+   public int getBiggest()
+   {
+      return biggest;
+   }
+   
+   public int getSmallest()
+   {
+      return smallest;
+   }
+   
+   public int getGuessCount()
+   {
+      return guessCount;
+   }
+   
+   public boolean isLastGuess()
+   {
+      return guessCount==maxGuesses;
+   }
+
+   public int getRemainingGuesses() {
+      return maxGuesses-guessCount;
+   }
+
+   public void setMaxGuesses(int maxGuesses) {
+      this.maxGuesses = maxGuesses;
+   }
+
+   public int getMaxGuesses() {
+      return maxGuesses;
+   }
+
+   public int getRandomNumber() {
+      return randomNumber;
+   }
+
+   public void cheated()
+   {
+      cheated = true;
+   }
+   
+   public boolean isCheat() {
+      return cheated;
+   }
+   
+   public List&lt;Integer&gt; getPossibilities()
+   {
+      List&lt;Integer&gt; result = new ArrayList&lt;Integer&gt;();
+      for(int i=smallest; i&lt;=biggest; i++) result.add(i);
+      return result;
+   }
+   
+}</programlisting>
+                    <calloutlist>
+                        <callout arearefs="numberguess-create">
+                            <para> 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. </para>
+                        </callout>
+                    </calloutlist>
+                </programlistingco>
+            </example>
+            
+
+         
+            <para>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. 
+            </para>
+
+            
+            <programlisting role="XML">
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;pages xmlns="http://jboss.com/products/seam/pages"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd"&gt;
+
+&lt;page view-id="/numberGuess.jspx"&gt;
+	&lt;begin-conversation join="true" pageflow="numberGuess"/&gt;
+&lt;/page&gt;
+
+&lt;page view-id="/confirm.jspx"&gt;
+	&lt;begin-conversation nested="true" pageflow="cheat"/&gt;
+&lt;/page&gt;
+
+&lt;/pages&gt;      
+</programlisting>                  
+            
+            
+               <para> 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. </para>
+            
+        </section>
+
+        <section>
+            <title>How it works</title>
+            <para>TODO</para>
+        </section>
+
+    </section>
+
+    <section id="booking">
+        <title>A complete Seam application: the Hotel Booking example</title>
+
+        <section>
+            <title>Introduction</title>
+
+            <para> The booking application is a complete hotel room reservation system incorporating the following
+                features: </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para>User registration</para>
+                </listitem>
+                <listitem>
+                    <para>Login</para>
+                </listitem>
+                <listitem>
+                    <para>Logout</para>
+                </listitem>
+                <listitem>
+                    <para>Set password</para>
+                </listitem>
+                <listitem>
+                    <para>Hotel search</para>
+                </listitem>
+                <listitem>
+                    <para>Hotel selection</para>
+                </listitem>
+                <listitem>
+                    <para>Room reservation</para>
+                </listitem>
+                <listitem>
+                    <para>Reservation confirmation</para>
+                </listitem>
+                <listitem>
+                    <para>Existing reservation list</para>
+                </listitem>
+            </itemizedlist>
+
+      <screenshot>
+        <screeninfo>Booking example</screeninfo>
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/booking.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/booking.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+            <para> 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. </para>
+
+            <para> 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. </para>
+            <para> 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. </para>
+
+        </section>
+ 
+        <section>
+            <title>Overview of the booking example</title>
+
+            <para> 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>
+            </para>
+
+            <para> 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. </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para><literal>BookingListAction</literal> retrieves existing bookings for the currently logged in user. </para>
+                </listitem>
+                <listitem>
+                    <para><literal>ChangePasswordAction</literal> updates the password of the currently logged in user.</para>
+                </listitem>
+                <listitem>
+                    <para><literal>HotelBookingAction</literal> implements the core functionality of the application: hotel
+                    room searching, selection, booking and booking confirmation. This functionality is implemented as a
+                        <emphasis>conversation</emphasis>, so this is the most interesting class in the application. </para></listitem>
+                <listitem>
+                    <para><literal>RegisterAction</literal> registers a new system user.</para>
+                </listitem>
+            </itemizedlist>
+
+            <para> Three entity beans implement the application's persistent domain model. </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para><literal>Hotel</literal> is an entity bean that represent a hotel </para></listitem>
+                <listitem>
+                    <para><literal>Booking</literal> is an entity bean that represents an existing booking </para></listitem>
+                <listitem>
+                    <para><literal>User</literal> is an entity bean to represents a user who can make hotel bookings</para>
+                </listitem>
+            </itemizedlist>
+
+        </section>
+
+        <section>
+            <title>Understanding Seam conversations</title>
+            <para> 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. </para>
+            <para> 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. </para>
+            <para> 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. </para>
+            <para> 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). </para>
+            <para> Now there is a better way. </para>
+            <para> 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. </para>
+            <para> 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. </para>
+            <para> OK, I'll stop ranting now, and get back to the tutorial. </para>
+
+            <para> 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. </para>
+
+            <para> The booking example also demonstrates the use of RichFaces Ajax to implement rich client behavior without
+                the use of handwritten JavaScript. </para>
+
+            <para> The search functionality is implemented using a session-scope stateful session bean, similar to the
+                one we saw in the message list example above. </para>
+                
+            <example>
+                <title></title>
+             <!-- Can't use code hightlighting with callouts -->
+                 <programlisting>
+ at Stateful
+ at Name("hotelSearch")
+ at Scope(ScopeType.SESSION)
+ at Restrict("#{identity.loggedIn}")
+public class HotelSearchingAction implements HotelSearching
+{
+   
+   @PersistenceContext
+   private EntityManager em;
+   
+   private String searchString;
+   private int pageSize = 10;
+   private int page;
+   
+   @DataModel
+   private List&lt;Hotel&gt; hotels;
+   
+   public void find()
+   {
+      page = 0;
+      queryHotels();
+   }
+   public void nextPage()
+   {
+      page++;
+      queryHotels();
+   }
+      
+   private void queryHotels()
+   {
+      hotels = 
+          em.createQuery("select h from Hotel h where lower(h.name) like #{pattern} " + 
+                         "or lower(h.city) like #{pattern} " + 
+                         "or lower(h.zip) like #{pattern} " +
+                         "or lower(h.address) like #{pattern}")
+            .setMaxResults(pageSize)
+            .setFirstResult( page * pageSize )
+            .getResultList();
+   }
+   
+   public boolean isNextPageAvailable()
+   {
+      return hotels!=null &amp;&amp; hotels.size()==pageSize;
+   }
+   
+   public int getPageSize() {
+      return pageSize;
+   }
+   
+   public void setPageSize(int pageSize) {
+      this.pageSize = pageSize;
+   }
+   
+   @Factory(value="pattern", scope=ScopeType.EVENT)
+   public String getSearchPattern()
+   {
+      return searchString==null ? 
+            "%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
+   }
+   
+   public String getSearchString()
+   {
+      return searchString;
+   }
+   
+   public void setSearchString(String searchString)
+   {
+      this.searchString = searchString;
+   }
+   
+   @Remove
+   public void destroy() {}
+} </programlisting>
+                    
+                            <para> 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. </para>
+                       
+                            <para> 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. </para>
+                       
+                            <para> The
+                                    <literal>@DataModel</literal>
+                                 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>. </para>
+                      
+                            <para> 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.</para>
+            </example>
+            
+
+            <para> The main page of the application is a Facelets page. Let's look at the fragment which relates to
+                searching for hotels: </para>
+            <example>
+               <title></title>
+             <!-- Can't use code hightlighting with callouts -->
+                 <programlisting>
+&lt;div class="section"&gt;
+  
+&lt;span class="errors"&gt;
+	&lt;h:messages globalOnly="true"/&gt;
+&lt;/span&gt;
+    
+&lt;h1&gt;Search Hotels&lt;/h1&gt;
+
+&lt;h:form id="searchCriteria"&gt;
+&lt;fieldset&gt; 
+	&lt;h:inputText id="searchString" value="#{hotelSearch.searchString}" 
+			 style="width: 165px;"&gt;
+		&lt;a:support event="onkeyup" actionListener="#{hotelSearch.find}" 
+			 reRender="searchResults" /&gt;
+	&lt;/h:inputText&gt;
+       &#160;
+       &lt;a:commandButton id="findHotels" value="Find Hotels" action="#{hotelSearch.find}" 
+       reRender="searchResults"/&gt;
+       &#160;
+       &lt;a:status&gt;
+		&lt;f:facet name="start"&gt;
+			 &lt;h:graphicImage value="/img/spinner.gif"/&gt;
+		&lt;/f:facet&gt;
+	&lt;/a:status&gt;
+			 &lt;br/&gt;
+		 &lt;h:outputLabel for="pageSize"&gt;Maximum results:&lt;/h:outputLabel&gt;&#160;
+				 &lt;h:selectOneMenu value="#{hotelSearch.pageSize}" id="pageSize"&gt;
+		 &lt;f:selectItem itemLabel="5" itemValue="5"/&gt;
+		 &lt;f:selectItem itemLabel="10" itemValue="10"/&gt;
+		 &lt;f:selectItem itemLabel="20" itemValue="20"/&gt;
+		 &lt;/h:selectOneMenu&gt;
+			 &lt;/fieldset&gt;
+			 &lt;/h:form&gt;
+    
+			 &lt;/div&gt;
+
+			 &lt;a:outputPanel id="searchResults"&gt;
+			 &lt;div class="section"&gt;
+			 &lt;h:outputText value="No Hotels Found"
+			 rendered="#{hotels != null and hotels.rowCount==0}"/&gt;
+		 &lt;h:dataTable id="hotels" value="#{hotels}" var="hot" 
+		 rendered="#{hotels.rowCount&gt;0}"&gt;
+				 &lt;h:column&gt;
+			 &lt;f:facet name="header"&gt;Name&lt;/f:facet&gt;
+            #{hot.name}
+	    &lt;/h:column&gt;
+			 &lt;h:column&gt;
+			 &lt;f:facet name="header">Address&lt;/f:facet&gt;
+            #{hot.address}
+	    &lt;/h:column&gt;
+			 &lt;h:column&gt;
+			 &lt;f:facet name="header"&gt;City, State&lt;/f:facet&gt;
+            #{hot.city}, #{hot.state}, #{hot.country}
+	    &lt;/h:column&gt;
+			 &lt;h:column&gt;
+			 &lt;f:facet name="header"&gt;Zip&lt;/f:facet&gt;
+            #{hot.zip}
+	    &lt;/h:column&gt;
+	    &lt;h:column&gt;
+			 &lt;f:facet name="header">Action&lt;/f:facet&gt;
+				 &lt;s:link id="viewHotel" value="View Hotel" 
+				 action="#{hotelBooking.selectHotel(hot)}"/&gt;
+	    &lt;/h:column&gt;
+	&lt;/h:dataTable&gt;
+	&lt;s:link value="More results" action="#{hotelSearch.nextPage}" 
+			 rendered="#{hotelSearch.nextPageAvailable}"/&gt;
+	&lt;/div&gt;
+&lt;/a:outputPanel&gt;
+</programlisting>
+                    
+                            <para> The RichFaces Ajax <literal>&lt;a:support&gt;</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. </para>
+                       
+                            <para> The RichFaces Ajax <literal>&lt;a:status&gt;</literal> tag lets us display a cheesy
+                                annimated image while we wait for asynchronous requests to return. </para>
+                       
+                            <para> The RichFaces Ajax <literal>&lt;a:outputPanel&gt;</literal> tag defines a region of
+                                the page which can be re-rendered by an asynchronous request. </para>
+                      
+                            <para> The Seam <literal>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> is that it preserves the
+                                operation of "open in new window" and "open in new tab". Also notice that we use a
+                                method binding with a parameter: <literal>#{hotelBooking.selectHotel(hot)}</literal>.
+                                This is not possible in the standard Unified EL, but Seam provides an extension to the
+                                EL that lets you use parameters on any method binding expression. </para>
+                            <para> If you're wondering how navigation occurs,
+                                you can find all the rules in <literal>WEB-INF/pages.xml</literal>;
+                                this is discussed in the navigation section of this book. </para>
+                        
+            </example>
+            
+
+            <para> 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. </para>
+
+
+            <para> 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. </para>
+            <example>
+               <title></title>
+             <!-- Can't use code hightlighting with callouts -->
+                 <programlisting>
+ at Stateful
+ at Name("hotelBooking")
+ at Restrict("#{identity.loggedIn}")
+public class HotelBookingAction implements HotelBooking
+{
+   
+   @PersistenceContext(type=EXTENDED)
+   private EntityManager em;
+   
+   @In 
+   private User user;
+   
+   @In(required=false) @Out
+   private Hotel hotel;
+   
+   @In(required=false) 
+   @Out(required=false)
+   private Booking booking;
+     
+   @In
+   private FacesMessages facesMessages;
+      
+   @In
+   private Events events;
+   
+   @Logger 
+   private Log log;
+   
+   private boolean bookingValid;
+   
+   @Begin
+   public void selectHotel(Hotel selectedHotel)
+   {
+      hotel = em.merge(selectedHotel);
+   }
+   
+   public void bookHotel()
+   {      
+      booking = new Booking(hotel, user);
+      Calendar calendar = Calendar.getInstance();
+      booking.setCheckinDate( calendar.getTime() );
+      calendar.add(Calendar.DAY_OF_MONTH, 1);
+      booking.setCheckoutDate( calendar.getTime() );
+   }
+   
+   public void setBookingDetails()
+   {
+      Calendar calendar = Calendar.getInstance();
+      calendar.add(Calendar.DAY_OF_MONTH, -1);
+      if ( booking.getCheckinDate().before( calendar.getTime() ) )
+      {
+         facesMessages.addToControl("checkinDate", "Check in date must be a future date");
+         bookingValid=false;
+      }
+      else if ( !booking.getCheckinDate().before( booking.getCheckoutDate() ) )
+      {
+         facesMessages.addToControl("checkoutDate", 
+                                    "Check out date must be later than check in date");
+         bookingValid=false;
+      }
+      else
+      {
+         bookingValid=true;
+      }
+   }
+   
+   public boolean isBookingValid()
+   {
+      return bookingValid;
+   }
+   
+   @End
+   public void confirm()
+   {
+      em.persist(booking);
+      facesMessages.add("Thank you, #{user.name}, your confimation number " + 
+                        " for #{hotel.name} is #{booki g.id}");
+      log.info("New booking: #{booking.id} for #{user.username}");
+      events.raiseTransactionSuccessEvent("bookingConfirmed");
+   }
+   
+   @End
+   public void cancel() {}
+   
+   @Remove
+   public void destroy() {}
+</programlisting>
+                    
+                            <para> 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.
+                            </para>
+                      
+                            <para> The
+                                    <literal>@Out</literal>
+                                 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. </para>
+                      
+                            <para> The
+                                    <literal>@Begin</literal>
+                                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. </para>
+                    
+                            <para> The
+                                    <literal>@End</literal>
+                                 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. </para>
+                      
+                            <para> This EJB remove method will be called when Seam destroys the conversation context.
+                                Don't forget to define this method! </para>
+            </example>
+            
+
+            <para>
+                <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. </para>
+
+            <para> 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. </para>
+
+        </section>
+
+        <section>
+            <title>The Seam UI control library</title>
+            <para> 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>&lt;s:link&gt;</literal> control for navigation from the search screen to the hotel
+                page: </para>
+
+            <programlisting role="JAVA">
+&lt;s:link value="View Hotel" action="#{hotelBooking.selectHotel(hot)}"/&gt;
+</programlisting>
+
+            <para> The use of <literal>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> does not work with "open in new window". We'll see
+                later that <literal>&lt;s:link&gt;</literal> also offers a number of other useful features,
+                including conversation propagation rules. </para>
+
+            <para> 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. </para>
+        </section>
+
+        <section>
+            <title>The Seam Debug Page</title>
+
+            <para> 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:</para>
+            
+<programlisting role="XML">
+&lt;core:init jndi-pattern="@jndiPattern@" debug="true"/&gt;
+</programlisting>                            
+
+            <para>  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>. </para>
+
+            <mediaobject>
+                <imageobject role="fo">
+                    <imagedata fileref="images/debug.png" align="center" scalefit="1"/>
+                </imageobject>
+                <imageobject role="html">
+                    <imagedata fileref="images/debug.png" align="center"/>
+                </imageobject>
+            </mediaobject>
+
+        </section>
+
+    </section>
+
+    <section id="dvdstore">
+        <title>A complete application featuring Seam and jBPM: the DVD Store example</title>
+
+        <para> The DVD Store demo application shows the practical usage of jBPM for both task management and pageflow. </para>
+
+        <para> The user screens take advantage of a jPDL pageflow to implement searching and shopping cart
+            functionality. </para>
+
+        <screenshot>
+        <screeninfo>DVD Store example</screeninfo>
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/dvdsearch.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/dvdsearch.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+        <para> 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! </para>
+
+        <screenshot>
+        <screeninfo>DVD Store example</screeninfo>
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/dvdtasks.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/dvdtasks.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+        <para>TODO</para>
+        <para>Look in the <literal>dvdstore</literal> directory.</para>
+    </section>
+
+    <section id="hibernate">
+        <title>An example of Seam with Hibernate: the Hibernate Booking example</title>
+
+        <para> 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. </para>
+
+        <para>TODO</para>
+        <para>Look in the <literal>hibernate</literal> directory.</para>
+    </section>
+
+    <section id="blog">
+        <title>A RESTful Seam application: the Blog example</title>
+
+        <para> 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. </para>
+
+        <screenshot>
+        <screeninfo>Blog example</screeninfo>
+        <mediaobject>
+          <imageobject role="fo">
+            <imagedata fileref="images/blog.png" align="center" scalefit="1"/>
+          </imageobject>
+          <imageobject role="html">
+            <imagedata fileref="images/blog.png" align="center"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+        <para> 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. </para>
+
+        <section>
+            <title>Using "pull"-style MVC</title>
+
+            <para> This snippet from the <literal>index.xhtml</literal> facelets page displays a list of recent blog
+                entries: </para>
+            <example>
+               <title></title>
+            <programlisting role="XHTML">
+&lt;h:dataTable value="#{blog.recentBlogEntries}" var="blogEntry" rows="3"&gt;
+&lt;h:column&gt;
+&lt;div class="blogEntry"&gt;
+&lt;h3&gt;#{blogEntry.title}&lt;/h3&gt;
+&lt;div&gt;
+	&lt;h:outputText escape="false" 
+		    value="#{blogEntry.excerpt==null ? blogEntry.body : blogEntry.excerpt}"/&gt;
+&lt;/div&gt;
+&lt;p&gt;
+	&lt;h:outputLink value="entry.seam" rendered="#{blogEntry.excerpt!=null}"&gt;
+		    &lt;f:param name="blogEntryId" value="#{blogEntry.id}"/&gt;
+               Read more...
+	&lt;/h:outputLink&gt;
+&lt;/p&gt;
+&lt;p&gt;
+[Posted on 
+&lt;h:outputText value="#{blogEntry.date}"&gt;
+	&lt;f:convertDateTime timeZone="#{blog.timeZone}" 
+		    locale="#{blog.locale}" type="both"/&gt;
+&lt;/h:outputText&gt;]
+            &#160;
+&lt;h:outputLink value="entry.seam"&gt;[Link]
+	&lt;f:param name="blogEntryId" value="#{blogEntry.id}"/&gt;
+&lt;/h:outputLink&gt;
+&lt;/p&gt;
+&lt;/div&gt;
+&lt;/h:column&gt;
+&lt;/h:dataTable&gt;
+</programlisting>
+</example>
+            
+
+            <para> If we navigate to this page from a bookmark, how does the data used by the
+                    <literal>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what happens is that
+                the <literal>Blog</literal> is retrieved lazily&#8212;"pulled"&#8212;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. </para>
+             <example>
+               <title></title>
+             <!-- Can't use code hightlighting with callouts -->
+                 <programlisting>
+ at Name("blog")
+ at Scope(ScopeType.STATELESS)
+ at AutoCreate
+public class BlogService 
+{
+   
+   @In EntityManager entityManager;
+  
+   @Unwrap
+   public Blog getBlog()
+   {
+      return (Blog) entityManager.createQuery("select distinct b from Blog b left join fetch b.blogEntries")
+            .setHint("org.hibernate.cacheable", true)
+            .getSingleResult();
+   }
+
+</programlisting>
+                
+                            <para> 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.
+                            </para>
+                    
+                            <para> The <literal>@Unwrap</literal> annotation tells Seam to provide the return value of
+                                the method&#8212;the <literal>Blog</literal>&#8212;instead of the actual
+                                    <literal>BlogService</literal> component to clients. This is the Seam
+                                    <emphasis>manager component pattern</emphasis>. </para>
+
+               </example>
+            
+
+            <para> This is good so far, but what about bookmarking the result of form submissions, such as a search
+                results page? </para>
+
+        </section>
+
+        <section>
+            <title>Bookmarkable search results page</title>
+
+            <para> 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>: </para>
+            <example>
+               <title></title>
+            <programlisting role="XHTML">
+&lt;div id="search"&gt;
+	&lt;h:form&gt;
+		&lt;h:inputText value="#{searchAction.searchPattern}"/&gt;
+	    	&lt;h:commandButton value="Search" action="/search.xhtml"/&gt;
+	&lt;/h:form&gt;
+&lt;/div&gt;</programlisting>
+            
+
+            <para> 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: </para>
+                
+	<programlisting role="XML">
+&lt;navigation-rule&gt;
+	&lt;navigation-case&gt;
+		&lt;from-outcome>searchResults&lt;/from-outcome&gt;
+		&lt;to-view-id&gt;/search.xhtml&lt;/to-view-id&gt;
+		&lt;redirect/&gt;
+	&lt;/navigation-case&gt;
+&lt;/navigation-rule&gt;
+</programlisting>
+            </example>
+
+            <para> Then the form would have looked like this: </para>
+            
+	    <programlisting role="XHTML">
+&lt;div id="search"&gt;
+	&lt;h:form&gt;
+		&lt;h:inputText value="#{searchAction.searchPattern}"/&gt;
+		&lt;h:commandButton value="Search" action="searchResults"/&gt;
+	&lt;/h:form&gt;
+&lt;/div&gt;
+</programlisting>
+            
+
+            <para> 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>: </para>
+            <example>
+            <title></title>
+		    <programlisting role="XML">
+&lt;pages&gt;
+	&lt;page view-id="/search.xhtml"&gt;
+		&lt;param name="searchPattern" value="#{searchService.searchPattern}"/&gt;
+	&lt;/page&gt;
+&lt;/pages&gt;
+</programlisting>
+</example>
+            
+
+            <para> 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. </para>
+
+            <para> The redirect takes us to the <literal>search.xhtml</literal> page: </para>
+            
+		    <programlisting role="XHTML">
+&lt;h:dataTable value="#{searchResults}" var="blogEntry"&gt;
+	&lt;h:column&gt;
+	&lt;div&gt;
+		&lt;h:outputLink value="entry.seam"&gt;
+			&lt;f:param name="blogEntryId" value="#{blogEntry.id}"/&gt;
+            #{blogEntry.title}
+	   	&lt;/h:outputLink&gt;
+         posted on 
+	 	&lt;h:outputText value="#{blogEntry.date}"&gt;
+			&lt;f:convertDateTime timeZone="#{blog.timeZone}" locale="#{blog.locale}" type="both"/&gt;
+		&lt;/h:outputText&gt;
+	&lt;/div&gt;
+	&lt;/h:column&gt;
+&lt;/h:dataTable&gt;
+</programlisting>
+            
+
+            <para> Which again uses "pull"-style MVC to retrieve the actual search results: </para>
+
+		    <programlisting role="JAVA">
+ at Name("searchService")
+public class SearchService 
+{
+   
+   @In
+   private EntityManager entityManager;
+   
+   private String searchPattern;
+   
+   @Factory("searchResults")
+   public List&lt;BlogEntry&gt; getSearchResults()
+   {
+      if (searchPattern==null)
+      {
+         return null;
+      }
+      else
+      {
+         return entityManager.createQuery("select be from BlogEntry be "" + 
+                      "where lower(be.title) like :searchPattern " + 
+                      "lower(be.body) like :searchPattern order by be.date desc")
+               .setParameter( "searchPattern", getSqlSearchPattern() )
+               .setMaxResults(100)
+               .getResultList();
+      }
+   }
+
+   private String getSqlSearchPattern()
+   {
+      return searchPattern==null ? "" :
+             '%' + searchPattern.toLowerCase().replace('*', '%').replace('?', '_') + '%';
+   }
+
+   public String getSearchPattern()
+   {
+      return searchPattern;
+   }
+
+   public void setSearchPattern(String searchPattern)
+   {
+      this.searchPattern = searchPattern;
+   }
+
+}</programlisting>
+            
+
+        </section>
+
+        <section>
+            <title>Using "push"-style MVC in a RESTful application</title>
+
+            <para> 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. </para>
+
+            <para> The <literal>entryAction</literal> component works much like an action class in a traditional
+                push-MVC action-oriented framework like Struts: </para>
+
+		    <programlisting role="JAVA">
+ at Name("entryAction")
+ at Scope(STATELESS)
+public class EntryAction
+{
+   @In(create=true) 
+   private Blog blog;
+   
+   @Out
+   private BlogEntry blogEntry;
+   
+   public void loadBlogEntry(String id) throws EntryNotFoundException
+   {
+      blogEntry = blog.getBlogEntry(id);
+      if (blogEntry==null) throw new EntryNotFoundException(id);
+   }
+   
+}</programlisting>
+            
+
+            <para> Page actions are also declared in <literal>pages.xml</literal>: </para>
+
+		    <programlisting role="XML">
+&lt;pages&gt;
+	&lt;page view-id="/entry.xhtml" action="#{entryAction.loadBlogEntry(blogEntry.id)}"&gt;
+		&lt;param name="blogEntryId" value="#{blogEntry.id}"/&gt;
+	&lt;/page&gt;
+	&lt;page view-id="/post.xhtml" action="#{loginAction.challenge}"/&gt;
+	&lt;page view-id="*" action="#{blog.hitCount.hit}"/&gt;
+&lt;/pages&gt;
+</programlisting>
+            
+
+            <para> Notice that the example is using page actions for some other functionality&#8212;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. </para>
+
+            <para> 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&#8212;the <literal>blogEntry</literal>&#8212;and places it in the Seam event context.
+                Finally, the following is rendered: </para>
+
+            <programlisting role="XHTML">
+&lt;div class="blogEntry"&gt;
+&lt;h3&gt;#{blogEntry.title}&lt;/h3&gt;
+&lt;div&gt;
+	&lt;h:outputText escape="false" value="#{blogEntry.body}"/&gt;
+&lt;/div&gt;
+&lt;p&gt;
+      [Posted on&#160;
+	&lt;h:outputText value="#{blogEntry.date}"&gt;
+	&lt;f:convertDateTime timezone="#{blog.timeZone}" 
+	    locale="#{blog.locale}" type="both"/&gt;
+	&lt;/h:outputText&gt;]
+&lt;/p&gt;
+&lt;/div&gt;
+</programlisting>
+            
+
+            <para> 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: </para>
+		
+            <programlisting role="JAVA">
+ at ApplicationException(rollback=true)
+ at HttpError(errorCode=HttpServletResponse.SC_NOT_FOUND)
+public class EntryNotFoundException extends Exception
+{
+   EntryNotFoundException(String id)
+   {
+      super("entry not found: " + id);
+   }
+}</programlisting>
+            
+
+            <para> An alternative implementation of the example does not use the parameter in the method binding: </para>
+
+            <programlisting role="JAVA">
+ at Name("entryAction")
+ at Scope(STATELESS)
+public class EntryAction
+{
+   @In(create=true) 
+   private Blog blog;
+   
+   @In @Out
+   private BlogEntry blogEntry;
+   
+   public void loadBlogEntry() throws EntryNotFoundException
+   {
+      blogEntry = blog.getBlogEntry( blogEntry.getId() );
+      if (blogEntry==null) throw new EntryNotFoundException(id);
+   }
+   
+}</programlisting>
+
+                <programlisting role="XML">
+&lt;pages&gt;
+	&lt;page view-id="/entry.xhtml" action="#{entryAction.loadBlogEntry}"&gt;
+		&lt;param name="blogEntryId" value="#{blogEntry.id}"/&gt;
+	&lt;/page&gt;
+&lt;/pages&gt;
+</programlisting>
+            
+
+            <para> It is a matter of taste which implementation you prefer. </para>
+
+        </section>
+
+    </section>
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Tutorial.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Validation.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Validation.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Validation.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,303 @@
+<chapter id="validation">
+    <title>JSF form validation in Seam</title>
+    <para>
+        In plain JSF, validation is defined in the view:
+    </para>
+    
+    <programlisting role="XHTML"><![CDATA[<h:form>
+    <h:messages/>
+
+    <div>
+        Country:
+        <h:inputText value="#{location.country}" required="true">
+            <my:validateCountry/>
+        </h:inputText>
+    </div>
+    
+    <div>
+        Zip code:
+        <h:inputText value="#{location.zip}" required="true">
+            <my:validateZip/>
+        </h:inputText>
+    </div>
+
+    <h:commandButton/>
+</h:form>]]></programlisting>
+
+    <para>
+        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.
+    </para>
+    
+    <para>
+        Let's start by defining our constraints, on our 
+        <literal>Location</literal> class:
+    </para>
+
+    <programlisting role="JAVA"><![CDATA[public class Location {
+    private String country;
+    private String zip;
+    
+    @NotNull
+    @Length(max=30)
+    public String getCountry() { return country; }
+    public void setCountry(String c) { country = c; }
+
+    @NotNull
+    @Length(max=6)
+    @Pattern("^\d*$")
+    public String getZip() { return zip; }
+    public void setZip(String z) { zip = z; }
+}]]></programlisting>
+
+    <para>
+        Well, that's a decent first cut, but in practice it might be
+        more elegant to use custom constraints instead of the ones
+        built into Hibernate Validator:
+    </para>
+
+    <programlisting role="JAVA"><![CDATA[public class Location {
+    private String country;
+    private String zip;
+    
+    @NotNull
+    @Country
+    public String getCountry() { return country; }
+    public void setCountry(String c) { country = c; }
+
+    @NotNull
+    @ZipCode
+    public String getZip() { return zip; }
+    public void setZip(String z) { zip = z; }
+}]]></programlisting>
+    
+    <para>
+        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>&lt;s:validate&gt;</literal> to validate
+        against the constraint defined on the model object.
+    </para>
+    
+    <programlisting role="XHTML"><![CDATA[<h:form>
+    <h:messages/>
+
+    <div>
+        Country:
+        <h:inputText value="#{location.country}" required="true">
+            <s:validate/>
+        </h:inputText>
+    </div>
+    
+    <div>
+        Zip code:
+        <h:inputText value="#{location.zip}" required="true">
+            <s:validate/>
+        </h:inputText>
+    </div>
+    
+    <h:commandButton/>
+
+</h:form>]]></programlisting>
+
+     <para>
+         <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.
+     </para>
+
+    <para>
+        This approach <emphasis>defines</emphasis> constraints on the model, and 
+        <emphasis>presents</emphasis> constraint violations in the view&#8212;a
+        significantly better design.
+    </para>
+    
+     <para>
+         However, it is not much less verbose than what we started with, 
+         so let's try <literal>&lt;s:validateAll&gt;</literal>:
+     </para>
+
+    <programlisting role="XHTML"><![CDATA[<h:form>
+    
+    <h:messages/>
+
+    <s:validateAll>
+
+        <div>
+            Country:
+            <h:inputText value="#{location.country}" required="true"/>
+        </div>
+
+        <div>
+            Zip code:
+            <h:inputText value="#{location.zip}" required="true"/>
+        </div>
+
+        <h:commandButton/>
+
+    </s:validateAll>
+
+</h:form>]]></programlisting>
+     
+     <para>
+         This tag simply adds an <literal>&lt;s:validate&gt;</literal>
+         to every input in the form. For a large form, it can save a lot
+         of typing!
+     </para>
+
+     <para>
+         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.
+         
+     </para>
+     
+     <para>
+         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:
+     </para>
+     
+     <programlisting role="XHTML"><![CDATA[<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+                xmlns:s="http://jboss.com/products/seam/taglib">
+                 
+    <div>
+    
+        <s:label styleClass="#{invalid?'error':''}">
+            <ui:insert name="label"/>
+            <s:span styleClass="required" rendered="#{required}">*</s:span>
+        </s:label>
+        
+        <span class="#{invalid?'error':''}">
+            <h:graphicImage value="/img/error.gif" rendered="#{invalid}"/>
+            <s:validateAll>
+                <ui:insert/>
+            </s:validateAll>
+        </span>
+        
+        <s:message styleClass="error"/>
+        
+    </div>
+    
+</ui:composition>]]></programlisting>
+     
+     <para>
+         We can include this template for each of our form fields using
+         <literal>&lt;s:decorate&gt;</literal>.
+     </para>
+
+    <programlisting role="XHTML"><![CDATA[<h:form>
+
+    <h:messages globalOnly="true"/>
+
+    <s:decorate template="edit.xhtml">
+        <ui:define name="label">Country:</ui:define>
+        <h:inputText value="#{location.country}" required="true"/>
+    </s:decorate>
+    
+    <s:decorate template="edit.xhtml">
+        <ui:define name="label">Zip code:</ui:define>
+        <h:inputText value="#{location.zip}" required="true"/>
+    </s:decorate>
+
+    <h:commandButton/>
+
+</h:form>]]></programlisting>
+
+    <para>
+        Finally, we can use RichFaces Ajax to display validation messages as the user 
+        is navigating around the form:
+    </para>
+
+    <programlisting role="XHTML"><![CDATA[<h:form>
+
+    <h:messages globalOnly="true"/>
+
+    <s:decorate id="countryDecoration" template="edit.xhtml">
+        <ui:define name="label">Country:</ui:define>
+        <h:inputText value="#{location.country}" required="true">
+            <a:support event="onblur" reRender="countryDecoration" bypassUpdates="true"/>
+        </h:inputText>
+    </s:decorate>
+    
+    <s:decorate id="zipDecoration" template="edit.xhtml">
+        <ui:define name="label">Zip code:</ui:define>
+        <h:inputText value="#{location.zip}" required="true">
+            <a:support event="onblur" reRender="zipDecoration" bypassUpdates="true"/>
+        </h:inputText>
+    </s:decorate>
+
+    <h:commandButton/>
+
+</h:form>]]></programlisting>
+
+    <para>
+ 		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.
+    </para>
+
+    <programlisting role="XHTML"><![CDATA[<h:form id="form">
+
+    <h:messages globalOnly="true"/>
+
+    <s:decorate id="countryDecoration" template="edit.xhtml">
+        <ui:define name="label">Country:</ui:define>
+        <h:inputText id="country" value="#{location.country}" required="true">
+            <a:support event="onblur" reRender="countryDecoration" bypassUpdates="true"/>
+        </h:inputText>
+    </s:decorate>
+    
+    <s:decorate id="zipDecoration" template="edit.xhtml">
+        <ui:define name="label">Zip code:</ui:define>
+        <h:inputText id="zip" value="#{location.zip}" required="true">
+            <a:support event="onblur" reRender="zipDecoration" bypassUpdates="true"/>
+        </h:inputText>
+    </s:decorate>
+
+    <h:commandButton/>
+
+</h:form>]]></programlisting>
+
+	<para>
+		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:
+	</para>
+	
+<programlisting role="JAVA"><![CDATA[public class Location {
+    private String name;
+    private String zip;
+    
+    // Getters and setters for name
+
+    @NotNull
+    @Length(max=6)
+    @ZipCode(message="#{messages['location.zipCode.invalid']}")
+    public String getZip() { return zip; }
+    public void setZip(String z) { zip = z; }
+}]]></programlisting>	
+
+<programlisting>
+location.zipCode.invalid = The zip code is not valid for #{location.name}
+</programlisting>
+
+</chapter>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Validation.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Webservices.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Webservices.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Webservices.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,202 @@
+<chapter id="webservices">
+  <title>Web Services</title>
+
+  <para>
+    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.
+  </para>
+
+  <sect1>
+    <title>Configuration and Packaging</title>
+    <para>
+      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.  
+    </para>
+    
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="XML"><![CDATA[<jaxws-config xmlns="urn:jboss:jaxws-config:2.0" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+              xsi:schemaLocation="urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd">
+   <endpoint-config>
+      <config-name>Seam WebService Endpoint</config-name>
+      <pre-handler-chains>
+         <javaee:handler-chain>
+            <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>
+            <javaee:handler>
+               <javaee:handler-name>SOAP Request Handler</javaee:handler-name>
+               <javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>
+            </javaee:handler>
+         </javaee:handler-chain>
+      </pre-handler-chains>
+   </endpoint-config>
+</jaxws-config>]]></programlisting>
+
+  </sect1>
+  
+  <sect1>
+    <title>Conversational Web Services</title>
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="XML"><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
+    xmlns:seam="http://seambay.example.seam.jboss.org/">
+  <soapenv:Header>
+    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>
+  </soapenv:Header>
+  <soapenv:Body>
+    <seam:confirmAuction/>
+  </soapenv:Body>
+</soapenv:Envelope>    
+    ]]></programlisting>
+    
+    <para>
+      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.
+    </para>
+    
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="XML"><![CDATA[<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
+  <env:Header>
+    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>
+  </env:Header>
+  <env:Body>
+    <confirmAuctionResponse xmlns="http://seambay.example.seam.jboss.org/"/>
+  </env:Body>
+</env:Envelope>    
+    ]]></programlisting>
+    
+    <para>
+      As you can see, the response message contains the same <literal>conversationId</literal> element as the request.
+    </para>
+    
+    <sect2>
+      <title>A Recommended Strategy</title>
+      
+      <para>
+        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.
+      </para>
+      
+      <mediaobject>
+        <imageobject role="fo">
+          <imagedata fileref="images/ws-strategy.png" align="center" scalefit="1"/>
+        </imageobject>
+        <imageobject role="html">
+          <imagedata fileref="images/ws-strategy.png" align="center"/>
+        </imageobject>
+      </mediaobject>      
+      
+      <para>
+        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. 
+      </para>
+      
+    </sect2>
+    
+  </sect1>
+  
+  <sect1>
+    <title>An example web service</title>
+    
+    <para>
+      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:
+    </para>
+    
+    <programlisting role="JAVA"><![CDATA[@Stateless
+ at WebService(name = "AuctionService", serviceName = "AuctionService")
+public class AuctionService implements AuctionServiceRemote
+{           
+   @WebMethod
+   public boolean login(String username, String password)
+   {
+      Identity.instance().setUsername(username);
+      Identity.instance().setPassword(password);
+      Identity.instance().login();
+      return Identity.instance().isLoggedIn();
+   }
+   
+   // snip
+}]]></programlisting>
+
+    <para>
+      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.
+    </para>
+    
+    <para>
+      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>.
+    </para>    
+    
+    <para>
+      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.
+    </para>
+    
+    <para>
+      Let's look at another example.  This web service method begins a new conversation by delegating to the
+      <literal>AuctionAction.createAuction()</literal> method:
+    </para>
+    
+    <programlisting role="JAVA"><![CDATA[   @WebMethod
+   public void createAuction(String title, String description, int categoryId)
+   {
+      AuctionAction action = (AuctionAction) Component.getInstance(AuctionAction.class, true);
+      action.createAuction();
+      action.setDetails(title, description, categoryId);
+   }]]></programlisting>
+   
+    <para>
+      And here's the code from <literal>AuctionAction</literal>:
+    </para>
+    
+    <programlisting role="JAVA"><![CDATA[   @Begin
+   public void createAuction()
+   {
+      auction = new Auction();
+      auction.setAccount(authenticatedAccount);
+      auction.setStatus(Auction.STATUS_UNLISTED);        
+      durationDays = DEFAULT_AUCTION_DURATION;
+   }]]></programlisting>
+   
+    <para>
+      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.
+    </para>
+
+  </sect1>
+
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Webservices.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Xml.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Xml.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Xml.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,542 @@
+<chapter id="xml">
+
+        <title>Configuring Seam components</title>
+        
+        <para> 
+            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>. 
+        </para>
+
+        <sect1>
+            <title>Configuring components via property settings</title>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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. 
+            </para>
+            <para> 
+                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>.) 
+            </para>
+        </sect1>
+
+        <sect1>
+            <title>Configuring components via <literal>components.xml</literal></title>
+            
+            <para> 
+                The <literal>components.xml</literal> file is a bit more powerful than property settings. It lets
+                you: 
+            </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para> Configure components that have been installed automatically&#8212;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. </para>
+                </listitem>
+                <listitem>
+                    <para> Install classes with no <literal>@Name</literal> annotation as Seam components&#8212;this
+                        is most useful for certain kinds of infrastructural components which can be installed multiple
+                        times different names (for example Seam-managed persistence contexts). </para>
+                </listitem>
+                <listitem>
+                    <para> 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. </para>
+                </listitem>
+                <listitem>
+                    <para> Override the scope of a component. </para>
+                </listitem>
+            </itemizedlist>
+
+            <para> 
+                A <literal>components.xml</literal> file may appear in one of three different places: 
+            </para>
+
+            <itemizedlist>
+                <listitem>
+                    <para>The <literal>WEB-INF</literal> directory of a <literal>war</literal>.</para>
+                </listitem>
+                <listitem>
+                    <para>The <literal>META-INF</literal> directory of a <literal>jar</literal>.</para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Any directory of a <literal>jar</literal> that contains classes with an
+                        <literal>@Name</literal> annotation.
+                    </para>
+                </listitem>
+            </itemizedlist>
+
+            <para> 
+                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. 
+            </para>
+
+            <para>
+                For example, the following <literal>components.xml</literal> file installs jBPM: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xmlns:bpm="http://jboss.com/products/seam/bpm">
+    <bpm:jbpm/>
+</components>]]></programlisting>
+
+            <para>
+                This example does the same thing:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+    <component class="org.jboss.seam.bpm.Jbpm"/>
+</components>]]></programlisting>
+
+            <para>
+                This one installs and configures two different Seam-managed persistence contexts:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
+            xmlns:persistence="http://jboss.com/products/seam/persistence"
+
+    <persistence:managed-persistence-context name="customerDatabase"
+                       persistence-unit-jndi-name="java:/customerEntityManagerFactory"/>
+        
+    <persistence:managed-persistence-context name="accountingDatabase"
+                       persistence-unit-jndi-name="java:/accountingEntityManagerFactory"/>            
+
+</components>]]></programlisting>
+
+            <para>
+                As does this one:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+    <component name="customerDatabase" 
+              class="org.jboss.seam.persistence.ManagedPersistenceContext">
+        <property name="persistenceUnitJndiName">java:/customerEntityManagerFactory</property>
+    </component>
+    
+    <component name="accountingDatabase"
+              class="org.jboss.seam.persistence.ManagedPersistenceContext">
+        <property name="persistenceUnitJndiName">java:/accountingEntityManagerFactory</property>
+    </component>
+</components>]]></programlisting>
+
+            <para>
+                This example creates a session-scoped Seam-managed persistence context (this is not recommended in
+                practice):
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
+            xmlns:persistence="http://jboss.com/products/seam/persistence"
+
+  <persistence:managed-persistence-context name="productDatabase" 
+                                          scope="session"
+                     persistence-unit-jndi-name="java:/productEntityManagerFactory"/>        
+
+</components>]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<components>
+            
+    <component name="productDatabase"
+              scope="session"
+              class="org.jboss.seam.persistence.ManagedPersistenceContext">
+        <property name="persistenceUnitJndiName">java:/productEntityManagerFactory</property>
+    </component>
+
+</components>]]></programlisting>
+
+            <para>
+                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.
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components" 
+            xmlns:persistence="http://jboss.com/products/seam/persistence"
+
+  <persistence:managed-persistence-context name="productDatabase" 
+                                    auto-create="true"
+                     persistence-unit-jndi-name="java:/productEntityManagerFactory"/>        
+
+</components>]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<components>
+            
+    <component name="productDatabase"
+        auto-create="true"
+              class="org.jboss.seam.persistence.ManagedPersistenceContext">
+        <property name="persistenceUnitJndiName">java:/productEntityManagerFactory</property>
+    </component>
+
+</components>]]></programlisting>
+
+            <para>
+                The <literal>&lt;factory&gt;</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.
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+
+    <factory name="contact" method="#{contactManager.loadContact}" scope="CONVERSATION"/>
+
+</components>]]></programlisting>
+
+            <para> 
+                You can create an "alias" (a second name) for a Seam component like so: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+
+    <factory name="user" value="#{actor}" scope="STATELESS"/>
+
+</components>]]></programlisting>
+
+            <para> 
+                You can even create an "alias" for a commonly used expression: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+
+    <factory name="contact" value="#{contactManager.contact}" scope="STATELESS"/>
+
+</components>]]></programlisting>
+
+            <para>
+                It is especially common to see the use of <literal>auto-create="true"</literal> with the
+                <literal>&lt;factory&gt;</literal> declaration:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+
+    <factory name="session" value="#{entityManager.delegate}" scope="STATELESS" auto-create="true"/>
+
+</components>]]></programlisting>
+
+            <para> 
+                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. 
+            </para>
+
+        </sect1>
+
+        <sect1>
+            <title>Fine-grained configuration files</title>
+            <para> 
+                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>&lt;components&gt;</literal> or <literal>&lt;component&gt;</literal>
+                element. </para>
+
+            <para> 
+                The first option lets you define multiple components in the file: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components>
+    <component class="com.helloworld.Hello" name="hello">
+        <property name="name">#{user.name}</property>
+    </component>
+    <factory name="message" value="#{hello.message}"/>
+</components>]]></programlisting>
+
+            <para> 
+                The second option only lets you define or configure one component, but is less noisy: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<component name="hello">
+    <property name="name">#{user.name}</property>
+</component>]]></programlisting>
+
+            <para> 
+                In the second option, the class name is implied by the file in which the component definition
+                appears. 
+            </para>
+
+            <para> 
+                Alternatively, you may put configuration for all classes in the <literal>com.helloworld</literal>
+                package in <literal>com/helloworld/components.xml</literal>. 
+            </para>
+        </sect1>
+
+        <sect1>
+            <title>Configurable property types</title>
+            <para> 
+                Properties of string, primitive or primitive wrapper type may be configured just as you would expect: 
+            </para>
+
+            <programlisting><![CDATA[org.jboss.seam.core.manager.conversationTimeout 60000]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<core:manager conversation-timeout="60000"/>]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.core.manager">
+    <property name="conversationTimeout">60000</property>
+</component>]]></programlisting>
+
+            <para> 
+                Arrays, sets and lists of strings or primitives are also supported: 
+            </para>
+
+            <programlisting><![CDATA[org.jboss.seam.bpm.jbpm.processDefinitions order.jpdl.xml, return.jpdl.xml, inventory.jpdl.xml]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<bpm:jbpm>
+    <bpm:process-definitions>
+        <value>order.jpdl.xml</value>
+        <value>return.jpdl.xml</value>
+        <value>inventory.jpdl.xml</value>
+    </bpm:process-definitions>
+</bpm:jbpm>]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<component name="org.jboss.seam.bpm.jbpm">
+    <property name="processDefinitions">
+        <value>order.jpdl.xml</value>
+        <value>return.jpdl.xml</value>
+        <value>inventory.jpdl.xml</value>
+    </property>
+</component>]]></programlisting>
+
+            <para> 
+                Even maps with String-valued keys and string or primitive values are supported: 
+            </para>
+
+            <programlisting role="XML"><![CDATA[<component name="issueEditor">
+    <property name="issueStatuses">
+        <key>open</key> <value>open issue</value>
+        <key>resolved</key> <value>issue resolved by developer</value>
+        <key>closed</key> <value>resolution accepted by user</value>
+    </property>
+</component>]]></programlisting>
+
+            <para> 
+                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. 
+            </para>
+
+
+            <programlisting role="XML"><![CDATA[<drools:managed-working-memory name="policyPricingWorkingMemory" rule-base="#{policyPricingRules}"/>]]></programlisting>
+
+            <programlisting role="XML"><![CDATA[<component name="policyPricingWorkingMemory"
+          class="org.jboss.seam.drools.ManagedWorkingMemory">
+    <property name="ruleBase">#{policyPricingRules}</property>
+</component>]]></programlisting>
+
+        </sect1>
+
+        <sect1>
+            <title>Using XML Namespaces</title>
+            <para> 
+                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:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<components xmlns="http://jboss.com/products/seam/components"
+            xsi:schemaLocation="http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">
+
+    <component class="org.jboss.seam.core.init">
+        <property name="debug">true</property>
+        <property name="jndiPattern">@jndiPattern@</property>
+    </component>
+    
+</components>]]></programlisting>
+
+            <para>
+                As you can see, this is somewhat verbose. Even worse, the component and attribute names cannot be 
+                validated at development time.
+            </para>
+
+            <para>The namespaced version looks like this:</para>
+
+            <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:core="http://jboss.com/products/seam/core"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation=
+                "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd 
+                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">
+
+    <core:init debug="true" jndi-pattern="@jndiPattern@"/>
+
+</components>]]></programlisting>
+
+            <para>
+                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.
+            </para>
+
+            <para> 
+                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>&lt;component&gt;</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.
+            </para>
+
+            <para>
+                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:
+            </para>
+
+            <programlisting role="JAVA">@Namespace(value="http://jboss.com/products/seam/examples/seampay")
+package org.jboss.seam.example.seampay;
+
+import org.jboss.seam.annotations.Namespace;</programlisting>
+
+            <para>
+                That is all you need to do to use the namespaced style in <literal>components.xml</literal>!
+                Now we can write:
+            </para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:pay="http://jboss.com/products/seam/examples/seampay"
+            ... >
+
+    <pay:payment-home new-instance="#{newPayment}"
+                      created-message="Created a new payment to #{newPayment.payee}" />
+
+    <pay:payment name="newPayment"
+                 payee="Somebody"
+                 account="#{selectedAccount}"
+                 payment-date="#{currentDatetime}"
+                 created-date="#{currentDatetime}" />
+     ...
+</components>]]></programlisting>
+
+            <para>Or:</para>
+
+            <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+            xmlns:pay="http://jboss.com/products/seam/examples/seampay"
+            ... >
+
+    <pay:payment-home>
+        <pay:new-instance>"#{newPayment}"</pay:new-instance>
+        <pay:created-message>Created a new payment to #{newPayment.payee}</pay:created-message>
+    </pay:payment-home>
+    
+    <pay:payment name="newPayment">
+        <pay:payee>Somebody"</pay:payee>
+        <pay:account>#{selectedAccount}</pay:account>
+        <pay:payment-date>#{currentDatetime}</pay:payment-date>
+        <pay:created-date>#{currentDatetime}</pay:created-date>
+     </pay:payment>
+     ...
+</components>]]></programlisting>
+
+            <para>
+                These examples illustrate the two usage models of a namespaced element. In the first declaration, 
+                the <literal>&lt;pay:payment-home&gt;</literal> references the <literal>paymentHome</literal>
+                component:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[package org.jboss.seam.example.seampay;
+...
+ at Name("paymentHome")
+public class PaymentController
+    extends EntityHome<Payment>
+{
+    ... 
+}]]></programlisting>
+
+            <para>
+                The element name is the hyphenated form of the component name. The attributes of the element are
+                the hyphenated form of the property names.
+            </para>
+
+            <para>
+                In the second declaration, the <literal>&lt;pay:payment&gt;</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:
+            </para>
+
+            <programlisting role="JAVA"><![CDATA[package org.jboss.seam.example.seampay;
+...
+ at Entity
+public class Payment
+    implements Serializable
+{
+    ...
+}]]></programlisting>
+            
+            <para>
+                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.   
+            </para>
+
+            <para>The following are the the namespaces used by Seam:</para>
+            
+            <itemizedlist>
+                <listitem>
+                    <para>components &#8212; <literal>http://jboss.com/products/seam/components</literal></para>
+                </listitem>
+                <listitem>
+                    <para>core &#8212; <literal>http://jboss.com/products/seam/core</literal></para>
+                </listitem>
+                <listitem>
+                    <para>drools &#8212; <literal>http://jboss.com/products/seam/drools</literal></para>
+                </listitem>
+                <listitem>
+                    <para>framework &#8212; <literal>http://jboss.com/products/seam/framework</literal></para>
+                </listitem>
+                <listitem>
+                    <para>jms &#8212; <literal>http://jboss.com/products/seam/jms</literal></para>
+                </listitem>
+                <listitem>
+                    <para>remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal></para>
+                </listitem>
+                <listitem>
+                    <para>theme &#8212; <literal>http://jboss.com/products/seam/theme</literal></para>
+                </listitem>
+                <listitem>
+                    <para>security &#8212; <literal>http://jboss.com/products/seam/security</literal></para>
+                </listitem>
+                <listitem>
+                    <para>mail &#8212; <literal>http://jboss.com/products/seam/mail</literal></para>
+                </listitem>
+                <listitem>
+                    <para>web &#8212; <literal>http://jboss.com/products/seam/web</literal></para>
+                </listitem>                
+                <listitem>
+                    <para>pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal></para>
+                </listitem>
+                <listitem>                    
+                    <para> spring &#8212; <literal>http://jboss.com/products/seam/spring</literal></para>
+                </listitem>
+                
+            </itemizedlist>
+            
+        </sect1>
+
+
+</chapter>


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/Xml.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/architecture.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/architecture.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/blog.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/blog.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/booking.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/booking.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmd.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmd.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmpfv.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/bpmpfv.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/breadcrumbs.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/breadcrumbs.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegendropdown.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegendropdown.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenmaintab.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenmaintab.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenselectseam.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/codegenselectseam.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consolecfgwizard.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consolecfgwizard.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consoleoutline-before-reveng.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/consoleoutline-before-reveng.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-seamtext.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-seamtext.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdate.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdate.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdatecss.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/controls-selectdatecss.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/debug.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/debug.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdsearch.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdsearch.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdtasks.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/dvdtasks.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/e-ejb3.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/e-ejb3.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ee5.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ee5.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.xcf
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/generate_entities_0.xcf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/gwt-helloworld.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/gwt-helloworld.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-ee.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-ee.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-mc.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernate-mc.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernatecfgwizard.gif
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/hibernatecfgwizard.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/issues.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/issues.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/layoutForm-example.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/layoutForm-example.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/list.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/list.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/messages.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/messages.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_0.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_action_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_2.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_3.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_4.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_5.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_6.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_connection_profile_6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_0.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_form_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_seam_runtime.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_seam_runtime.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_2.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_2.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_server_runtime_2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_0.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_2.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/new_web_project_2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess-pageflow.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess-pageflow.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/numberguess.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-numguess.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-numguess.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-todo.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-jbpm-todo.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-testng.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/plugin-testng.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/register.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/register.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/registration.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/registration.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/restart_deployment.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/restart_deployment.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/run_test.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/run_test.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-addrole.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-addrole.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-identitymanager.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-identitymanager.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccount.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccount.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccountschema.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-useraccountschema.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager1.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager1.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager2.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/security-usermanager2.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties_0.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/server_properties_0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/start_server.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/start_server.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/switcher.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/switcher.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/testng.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/testng.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo-process.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo-process.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/todo.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ws-strategy.png
===================================================================
(Binary files differ)


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/images/ws-strategy.png
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/master.xml
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/master.xml	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/master.xml	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"  [ ]>
+
+<book>
+    <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="Tutorial.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Gettingstarted.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Getting_Started_With_JBoss_Tools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Migration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Xml.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Events.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Conversations.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Jbpm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Persistence.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Validation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Groovy.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Framework.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Drools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "I18n.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Text.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Itext.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Mail.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Jms.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Cache.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Webservices.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Remoting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Spring.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Hsearch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Annotations.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Components.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Controls.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Elenhancements.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Testing.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Tools.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href= "Dependencies.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+</book>
\ No newline at end of file


Property changes on: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/en-US/master.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language es-ES translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language es-ES translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language es-ES 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language es-ES 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/es-ES/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language fr-FR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language fr-FR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language fr-FR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language fr-FR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/fr-FR/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language gu-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language gu-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language gu-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language gu-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/gu-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language hi-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language hi-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language hi-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language hi-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/hi-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language it-IT translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language it-IT translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language it-IT 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language it-IT 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/it-IT/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language ja-JP translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language ja-JP translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language ja-JP 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language ja-JP 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ja-JP/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language kn-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language kn-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language kn-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language kn-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/kn-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language ko-KR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language ko-KR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language ko-KR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language ko-KR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ko-KR/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language ml-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language ml-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language ml-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language ml-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ml-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language mr-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language mr-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language mr-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language mr-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/mr-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language or-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language or-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language or-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language or-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/or-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language pa-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language pa-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language pa-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language pa-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pa-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language pt-BR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language pt-BR translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language pt-BR 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language pt-BR 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/pt-BR/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language ru-RU translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language ru-RU translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language ru-RU 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language ru-RU 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ru-RU/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language si-LK translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language si-LK translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language si-LK 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language si-LK 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/si-LK/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language sl-SL translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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-05-03 11:34+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# 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-05-03 11:34+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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-05-03 11:34+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/sl-SL/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language ta-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language ta-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language ta-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language ta-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/ta-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language te-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language te-IN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language te-IN 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language te-IN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/te-IN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language zh-CN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-05-03 11:31+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language zh-CN 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-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language zh-CN 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-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language zh-CN 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-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language zh-CN 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-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language zh-CN translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:31+0000\n"
+"PO-Revision-Date: 2008-05-03 11:31+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language zh-CN 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-05-03 11:32+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language zh-CN 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-05-03 11:32+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language zh-CN 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-05-03 11:32+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language zh-CN 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-05-03 11:32+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language zh-CN 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-CN/master.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Annotations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Annotations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Annotations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2167 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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[@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> &#8212; the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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> &#8212; Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> &#8212; Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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[@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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> &#8212; 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[@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[@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> &#8212; the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> &#8212; 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> &#8212; 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> &#8212; name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> &#8212; 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> &#8212; 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[@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[@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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Author_Group.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Author_Group.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Author_Group.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,124 @@
+# Language zh-TW translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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
+#: Author_Group.xml:3
+#, no-c-format
+msgid "<firstname>Gavin</firstname> <surname>King</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:7
+#, no-c-format
+msgid "Project Lead"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:10
+#, no-c-format
+msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:14
+#, no-c-format
+msgid "<firstname>Norman</firstname> <surname>Richards</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:18
+#, no-c-format
+msgid "<firstname>Shane</firstname> <surname>Bryzak</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:22
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:26
+#, no-c-format
+msgid "<firstname>Mike</firstname> <surname>Youngstrom</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:30
+#, no-c-format
+msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:34
+#, no-c-format
+msgid "<firstname>Jay</firstname> <surname>Balunas</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:38
+#, no-c-format
+msgid "<firstname>Dan</firstname> <surname>Allen</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:42
+#, no-c-format
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:47
+#, no-c-format
+msgid "<firstname>Emmanuel</firstname> <surname>Bernard</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:51
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Cobb</surname>"
+msgstr ""
+
+#. Tag: shortaffil
+#: Author_Group.xml:55 Author_Group.xml:62
+#, no-c-format
+msgid "Graphic Design"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:58
+#, no-c-format
+msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Mark</firstname> <surname>Newton</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:69
+#, no-c-format
+msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:73
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Book_Info.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Book_Info.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Book_Info.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,26 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Cache.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Cache.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Cache.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,327 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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>&lt;s:cache&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Components.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Components.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Components.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2091 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> &#8212; "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> &#8212; 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> &#8212; perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> &#8212; the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> &#8212; the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> &#8212; the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> &#8212; the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> &#8212; the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> &#8212; 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> &#8212; 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> &#8212; the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> &#8212; the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> &#8212; 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> &#8212; select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> &#8212; the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> &#8212; the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> &#8212; 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> &#8212; 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> &#8212; returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> &#8212; is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> &#8212; is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> &#8212; returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> &#8212; returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> &#8212; sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> &#8212; 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> &#8212; 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> &#8212; end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> &#8212; pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> &#8212; return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> &#8212; 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> &#8212; 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> &#8212; returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> &#8212; 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> &#8212; 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> &#8212; sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> &#8212; 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> &#8212; 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> &#8212; the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> &#8212; the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> &#8212; is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> &#8212; is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> &#8212; 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> &#8212; start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> &#8212; end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> &#8212; 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> &#8212; 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> &#8212; 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>&lt;h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"&#8212; 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> "
+"&#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;entityManager&gt;"
+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>&lt;entityManager&gt;</emphasis>.entityManagerFactory &#8212; a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis>&lt;entityManager&gt;</emphasis>.persistenceUnitJndiName &#8212; "
+"the JNDI name of the entity manager factory, default to java:/<emphasis>&lt;"
+"managedPersistenceContext&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "&lt;entityManagerFactory&gt;"
+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> &#8212; 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 "&lt;session&gt;"
+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>&lt;session&gt;</emphasis>.sessionFactory &#8212; a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis>&lt;session&gt;</emphasis>.sessionFactoryJndiName &#8212; the JNDI "
+"name of the session factory, default to java:/<emphasis>&lt;"
+"managedSession&gt;</emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "&lt;sessionFactory&gt;"
+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>&lt;sessionFactory&gt;.cfgResourceName</literal> &#8212; the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "&lt;managedQueueSender&gt;"
+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>&lt;managedQueueSender&gt;</emphasis>.queueJndiName &#8212; the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "&lt;managedTopicPublisher&gt;"
+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>&lt;managedTopicPublisher&gt;</emphasis>.topicJndiName &#8212; the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "&lt;managedWorkingMemory&gt;"
+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>&lt;managedWorkingMemory&gt;</emphasis>.ruleBase &#8212; a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "&lt;ruleBase&gt;"
+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>&lt;ruleBase&gt;</emphasis>.ruleFiles &#8212; a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis>&lt;ruleBase&gt;</emphasis>.dslFile &#8212; a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "&lt;entityHome&gt;"
+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 "&lt;hibernateEntityHome&gt;"
+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 "&lt;entityQuery&gt;"
+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 "&lt;hibernateEntityQuery&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Concepts.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Concepts.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Concepts.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2008 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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> &#8212; the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> &#8212; 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> &#8212; the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> &#8212; for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> &#8212; 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&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Configuration.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Configuration.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Configuration.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1648 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:exception-"
+"filter&gt;</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> &#8212; 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> &#8212; 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> &#8212; The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;web:logging-filter&gt;</"
+"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&#8212;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&amp;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Controls.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Controls.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Controls.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1441 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;s:button&gt;"
+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> &#8212; the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> &#8212; a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> &#8212; the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> &#8212; the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> &#8212; is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> &#8212; 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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationId&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal>&lt;h:"
+"commandLink /&gt;</literal> , <literal>&lt;s:button /&gt;</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "&lt;s:taskId&gt;"
+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 "&lt;s:link&gt;"
+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> &#8212; 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>&lt;s:link /&gt;</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 "&lt;s:conversationPropagation&gt;"
+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> &#8212; 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 "&lt;s:defaultAction&gt;"
+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>&lt;h:"
+"commandButton /&gt;</literal>, <literal>&lt;a:commandButton /&gt;</literal> "
+"or <literal>&lt;tr:commandButton /&gt;</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 "&lt;s:convertDateTime&gt;"
+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 "&lt;s:convertEntity&gt;"
+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>&lt;s:"
+"convertEntity /&gt;</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 "&lt;s:convertEnum&gt;"
+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 "&lt;s:validate&gt;"
+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 "&lt;s:validateAll&gt;"
+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 "&lt;s:decorate&gt;"
+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> &#8212; 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 "&lt;s:div&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal>&lt;div&gt;</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 "&lt;s:span&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal>&lt;span&gt;</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 "&lt;s:fragment&gt;"
+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 "&lt;s:label&gt;"
+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>&lt;label&gt;</literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal>&lt;s:"
+"decorate&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> &#8212; The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> &#8212; 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 "&lt;s:message&gt;"
+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"
+"    &#160;Error:&#160;\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 "&lt;s:validateFormattedText&gt;"
+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 "&lt;s:formattedText&gt;"
+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> &#8212; 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 "&lt;s:enumItem&gt;"
+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> &#8212; the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> &#8212; 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 "&lt;s:selectItems&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List&lt;SelectItem&gt;</literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; an EL expression specifying the data that "
+"backs the <literal>List&lt;SelectItem&gt;</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;s:cache&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal>&lt;s:"
+"cache&gt;</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> &#8212; 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> &#8212; a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> &#8212; 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&#160;\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 "&lt;s:fileUpload&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> &#8212; this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> &#8212; this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> &#8212; 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 "&lt;s:graphicImage&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal>&lt;h:graphicImage&gt;</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>&lt;h:graphicImage&gt;</literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> &#8212; 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> &#8212; 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 "&lt;s:transformImageSize&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> &#8212; new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> &#8212; new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> &#8212; 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> &#8212; scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "&lt;s:transformImageBlur&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> &#8212; perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "&lt;s:transformImageType&gt;"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; 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 "&lt;s:remote&gt;"
+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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Conversations.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Conversations.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Conversations.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1663 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;"
+"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>&lt;s:conversationPropagation&gt;</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>&lt;h:outputLink&gt;</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>&lt;begin-conversation&gt;</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>&lt;end-conversation&gt;</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>&lt;begin-conversation&gt;</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>&lt;s:link&gt;</literal> and <literal>&lt;s:button&gt;</"
+"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>&lt;h:outputLink&gt;</"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal>&lt;h:outputLink&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal>&lt;h:"
+"outputLink&gt;</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&#8212;such as the Seam blog example "
+"application&#8212;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>&lt;s:link&gt;</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>&lt;h:dataTable&gt;</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>&lt;s:button&gt;</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>&lt;page/&gt;</"
+"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>&lt;page&gt;</literal> "
+"node. The description text is defined by the <literal>&lt;page&gt;</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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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> &#8212; 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>&lt;a:poll reRender=\"total\" interval=\"1000\" /&gt;</literal> "
+"&#8212; Polls the server, and rerenders an area as needed"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Dependencies.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Dependencies.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Dependencies.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,775 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Drools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Drools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Drools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,340 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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>&lt;assertObjects&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Elenhancements.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Elenhancements.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Elenhancements.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,438 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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> &#8212; 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> &#8212; Components like "
+"<literal>&lt;c:forEach /&gt;</literal> and <literal>&lt;ui:repeat /&gt;</"
+"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>&lt;h:commandButton /&gt;</literal> or <literal>&lt;h:commandLink /"
+"&gt;</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>&lt;s:link /&gt;</literal> or "
+"<literal>&lt;s:button /&gt;</literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal>&lt;"
+"dataTable /&gt;</literal> (or equivalent from a component set like "
+"<literal>&lt;rich:dataTable /&gt;</literal> ). Neither <literal>&lt;s:link /"
+"&gt;</literal> or <literal>&lt;s:button /&gt;</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> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Events.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Events.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Events.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1889 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;page&gt;</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>&lt;"
+"action&gt;</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>&lt;param&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;s:link&gt;</literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal>&lt;redirect/&gt;</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>&lt;s:link&gt;</literal> or <literal>&lt;s:button&gt;</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>&lt;page&gt;</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> &#8212; called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> &#8212; 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.&lt;name&gt;</literal> &#8212; called "
+"when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.&lt;name&gt;</literal> &#8212; "
+"called when the context variable &lt;name&gt; is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called before the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.&lt;SCOPE&gt;</literal> &#8212; "
+"called after the &lt;SCOPE&gt; context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>&#8212; called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>&#8212; called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>&#8212; 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>&#8212; called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>&#8212; called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.&lt;name&gt; </literal>&#8212; called "
+"when the pageflow &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.&lt;name&gt; </literal>&#8212; called "
+"when the process &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.&lt;name&gt; </literal>&#8212; called when "
+"the task &lt;name&gt; is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.&lt;name&gt; </literal>&#8212; called "
+"when the component &lt;name&gt; is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>&#8212; called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>&#8212; called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>&#8212; 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.&lt;name&gt; </literal>&#8212; "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.&lt;name&gt; </literal>&#8212; "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> &#8212; 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> &#8212; 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.&lt;type&gt;</literal> &#8212; "
+"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> &#8212; 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> &#8212; 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> &#8212; 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.&lt;name&gt;</literal> "
+"&#8212; called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal>&lt;name&gt;</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[@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>&lt;exception&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Feedback.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Feedback.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Feedback.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,28 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Framework.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Framework.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Framework.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,909 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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[\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+"    \n"
+"   @In EntityManager personDatabase;\n"
+"    \n"
+"   public EntityManager getEntityManager() {\n"
+"      return personDatabase; \n"
+"   }\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: programlisting
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:72
+#, no-c-format
+msgid ""
+"You can also make your classes stateless session beans. In this case you "
+"<emphasis>must</emphasis> use injection to provide the persistence context, "
+"even if it is called <literal>entityManager</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+"    \n"
+"   @In EntityManager entityManager;\n"
+"    \n"
+"   public EntityManager getPersistenceContext() { \n"
+"      entityManager; \n"
+"   }\n"
+"    \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:81
+#, 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:89
+#, 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:95
+#, 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:104
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:106
+#, 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:111
+#, 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:113
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:120
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:126
+#, 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:135
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:139
+#, 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:141
+#, 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:147
+#, 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:149
+#, 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:154
+#, 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:156
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, 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:163
+#, 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:172
+#, 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:174
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:178
+#, 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:180
+#, 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:187
+#, 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:192
+#, 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:194
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:198
+#, 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:200
+#, 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:205
+#, 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:210
+#, 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:212
+#, 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.&lt;name&gt;</literal> event "
+"(where <literal>&lt;name&gt;</literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:223
+#, 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:228
+#, 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:230
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:234
+#, 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:236
+#, 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:242
+#, 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:244
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal>&lt;s:validateAll&gt;</literal> and <literal>&lt;s:decorate&gt;</"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:258
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:260
+#, 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:265
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+"                        ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:267
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:271
+#, 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:273
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:277
+#, 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:279
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:284
+#, 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:286
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:290
+#, 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:292
+#, 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:298
+#, 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:300
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:304
+#, 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:306
+#, 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:311
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:313
+#, 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:318
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+"    <action execute=\"#{people.refresh}\" />\n"
+"    </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:320
+#, 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:328
+#, 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:336
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:337
+#, 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:349
+#, 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:354
+#, 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:356
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Getting_Started_With_JBoss_Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Getting_Started_With_JBoss_Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,567 @@
+# Language zh-TW translations for seam package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: seam 2_0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-05-03 11:34+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gettingstarted.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gettingstarted.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gettingstarted.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,870 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&gt;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 &gt; New "
+"&gt; Project and select General &gt; 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&gt;"
+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 -&gt; Project... -&gt; General -&gt; Project -&gt; 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 -&gt; "
+"Properties -&gt; 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&gt;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&gt;"
+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&gt;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&gt;"
+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Groovy.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Groovy.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Groovy.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,364 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&lt;Booking&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gwt.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gwt.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Gwt.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,355 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Hsearch.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Hsearch.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Hsearch.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,339 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/I18n.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/I18n.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/I18n.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,552 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;f:loadBundle /&gt;</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>&lt;f:loadBundle ... /&gt;</"
+"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>&lt;f:"
+"convertDateTime&gt;</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>&lt;s:convertDateTime&gt;</"
+"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>&lt;"
+"ui:composition&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Itext.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Itext.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Itext.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2353 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "&lt;p:document&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> &#8212; Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> &#8212; 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>&lt;p:image&gt;</"
+"literal> and <literal>&lt;p:paragraph&gt;</literal> are the basic "
+"foundations of simple documents. Tags like <literal>&lt;p:font&gt;</literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "&lt;p:paragraph&gt;"
+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> &#8212; 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> &#8212; 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 "&lt;p:text&gt;"
+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> &#8212; 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 "&lt;p:html&gt;"
+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> &#8212; 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 "&lt;p:font&gt;"
+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> &#8212; 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> &#8212; The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; 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 "&lt;p:newPage&gt;"
+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 "&lt;p:image&gt;"
+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> &#8212; 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> &#8212; The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> &#8212; The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> &#8212; The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>&#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:anchor&gt;"
+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> &#8212; The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> &#8212; 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 "&lt;p:header&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "&lt;p:footer&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:pageNumber&gt;"
+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 ""
+"&lt;p:footer borderWidthTop=&quot;1&quot; borderColorTop=&quot;blue&quot; \n"
+"          borderWidthBottom=&quot;0&quot; alignment=&quot;center&quot;&gt;\n"
+"    Why Seam? [&lt;p:pageNumber /&gt;]\n"
+"&lt;/p:footer&gt;"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "&lt;p:chapter&gt;"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "&lt;p:section&gt;"
+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> &#8212; The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> &#8212; 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 "&lt;p:list&gt;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> &#8212; 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> &#8212; For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> &#8212; The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> &#8212; 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> &#8212; For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> &#8212; 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 "&lt;p:listItem&gt;"
+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> &#8212; 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> &#8212; The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> &#8212; The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> &#8212; 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 "&lt;p:table&gt;"
+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> &#8212; The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> &#8212; 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 "&lt;p:cell&gt;"
+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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barchart&gt;"
+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> &#8212; 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> &#8212; The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> &#8212; The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> &#8212;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> &#8212; The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> &#8212; The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>&#8212; 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>&#8212; The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> &#8212; 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> &#8212; 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> &#8212; The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> &#8212; 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> &#8212; 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>&#8212; 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>&#8212; 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> &#8212; 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>&#8212; The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>&#8212; 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>&#8212; 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>&#8212; The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> &#8212; 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> &#8212; The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> &#8212; The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>&#8212; 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>&#8212; The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> &#8212; 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> &#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>&#8212; The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>&#8212; 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 "&lt;p:linechart&gt;"
+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 "&lt;p:piechart&gt;"
+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>&#8212; The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>&#8212; The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>&#8212; 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>&#8212;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>&#8212; The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>&#8212; The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>&#8212; he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>&#8212; 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>&#8212; The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>&#8212; The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>&#8212; The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>&#8212; The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>&#8212; 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>&#8212; 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>&#8212; The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>&#8212; 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>&#8212; 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>&#8212; The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>&#8212; The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>&#8212; 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>&#8212; The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>&#8212; The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>&#8212; 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 "&lt;p:series&gt;"
+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> &#8212; The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> &#8212; The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> &#8212; The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> &#8212; The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> &#8212; A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> &#8212; 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 "&lt;p:data&gt;"
+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> &#8212; The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> &#8212; The series name, when not embedded inside "
+"a <code>&lt;p:series&gt;</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> &#8212; The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> &#8212; 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> &#8212; For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> &#8212; For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> &#8212; 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 "&lt;p:color&gt;"
+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> &#8212; The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> &#8212; For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> &#8212; The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> &#8212; 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 "&lt;p:stroke&gt;"
+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> &#8212; The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 "&lt;p:barCode&gt;"
+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> &#8212; 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>&#8212; The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>&#8212; 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>&#8212; 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> &#8212; For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> &#8212; The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> &#8212; The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> &#8212; 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> &#8212; The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> &#8212; The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> &#8212; The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> &#8212; 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 "&lt;p:swing&gt;"
+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> &#8212; The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> &#8212; ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jbpm.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jbpm.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jbpm.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1236 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example&#8212;we consider ourselves "
+"to be already at the page being rendered, and use a <literal>&lt;start-"
+"page&gt;</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>&lt;start-state&gt;</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>&lt;page&gt;</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>&lt;redirect/"
+"&gt;</literal> element has the same effect as <literal>&lt;redirect/&gt;</"
+"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>&lt;decision&gt;</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>&lt;end-conversation&gt;</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>&lt;process-state&gt;</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>&lt;start-state&gt;</literal> "
+"node. When it reaches an <literal>&lt;end-state&gt;</literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal>&lt;process-state&gt;</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>&lt;page&gt;</literal> nodes, we have <literal>&lt;task-node&gt;</"
+"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>&lt;task&gt;</"
+"literal> in a business process corresponds to a whole pageflow <literal>&lt;"
+"pageflow-definition&gt;</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>&lt;s:link&gt;</literal> we could have used a "
+"plain JSF <literal>&lt;h:commandLink&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jms.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jms.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Jms.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,732 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Mail.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Mail.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Mail.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1156 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 "
+"&#8212; 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 at 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>&lt;m:message&gt;</literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal>&lt;m:message&gt;"
+"</literal> tag we use an <literal>&lt;m:from&gt;</literal> tag to set who "
+"the message is from, a <literal>&lt;m:to&gt;</literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal>&lt;m:subject&gt;</literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal>&lt;m:body&gt;</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>&lt;m:attachment&gt;</"
+"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>&lt;ui:"
+"repeat&gt;</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) &#8212; 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>&lt;ui:repeat&gt;</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>&lt;ui:repeat&gt;</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 at 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>&lt;m:"
+"header&gt;</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 &#8212; <literal>mail-ra.rar</literal> "
+"&#8212; 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>extras/</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 at jboss.org</value>\n"
+"                   <value>duke at 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 "&lt;m:message&gt;"
+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> &#8212; 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> &#8212; sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> &#8212; 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> &#8212; If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal>&lt;h:graphicImage&gt;</literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "&lt;m:from&gt;"
+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> &#8212; the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> &#8212; the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "&lt;m:replyTo&gt;"
+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 "&lt;m:to&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple &lt;m:to&gt; tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> &#8212; the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> &#8212; the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "&lt;m:cc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple &lt;m:cc&gt; tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as &lt;ui:"
+"repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "&lt;m:bcc&gt;"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple &lt;m:bcc&gt; tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as &lt;"
+"ui:repeat&gt;."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "&lt;m:header&gt;"
+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> &#8212; 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> &#8212; The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "&lt;m:attachment&gt;"
+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> &#8212; The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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>&lt;p:document&gt;</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> &#8212; Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> &#8212; Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "&lt;m:subject&gt;"
+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 "&lt;m:body&gt;"
+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> &#8212; If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Oc4j.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Oc4j.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Oc4j.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1613 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/&lt;your-app-path&gt;</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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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> &#8212; 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 &#8212; 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> &#8212; needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> &#8212; needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> &#8212; needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> &#8212; 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> &#8212; needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> &#8212; needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools &#8212; 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>&lt;data-sources&gt;</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>&lt;application-server&gt;</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>&lt;web-site&gt;</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> &lt;target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"&gt; </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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;"
+"target name=\"ear\" description=\"Build the EAR\"&gt; </literal> target and "
+"modify the <literal> &lt;copy todir=\"${ear.dir}/META-INF\"&gt; </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>&lt;fileset dir="
+"\"${basedir}\"&gt;</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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Persistence.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Persistence.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Persistence.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,931 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;in particular "
+"problems associated with <emphasis>optimistic transaction processing</"
+"emphasis>. Scalable online applications always use optimistic transactions. "
+"An atomic (database/JTA) level transaction should not span a user "
+"interaction unless the application is designed to support only a very small "
+"number of concurrent clients. But almost all interesting work involves first "
+"displaying data to a user, and then, slightly later, updating the same data. "
+"So Hibernate was designed to support the idea of a persistence context which "
+"spanned an optimistic transaction."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:30
+#, no-c-format
+msgid ""
+"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
+"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
+"instead, these architectures provided persistence contexts scoped to the "
+"atomic transaction. Of course, this resulted in many problems for users, and "
+"is the cause of the number one user complaint about Hibernate: the dreaded "
+"<literal>LazyInitializationException</literal>. What we need is a construct "
+"for representing an optimistic transaction in the application tier."
+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&#8212;but by the time the \"open session in "
+"view\" transaction is committed, the view is fully rendered, and the "
+"rendered response may already have been flushed to the client. How can we "
+"notify the user that their transaction was unsuccessful?"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:133
+#, no-c-format
+msgid ""
+"Seam solves both the transaction isolation problem and the association "
+"fetching problem, while working around the problems with \"open session in "
+"view\". The solution comes in two parts:"
+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>&lt;transaction:ejb-transaction/&gt;</literal> "
+"component should be be declared in <literal>components.xml</literal> to "
+"ensure that Seam synchronization callbacks are correctly called if the "
+"container commits a transaction outside of Seam's knowledge."
+msgstr ""
+
+#. Tag: title
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Preface.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Preface.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Preface.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,430 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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&#8212;request, session, "
+"application&#8212;with two new contexts&#8212;conversation and business "
+"process&#8212;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Remoting.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Remoting.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Remoting.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1552 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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"
+"   // ]]>]]&gt;<![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&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Revision_History.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Revision_History.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Revision_History.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,27 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Seam_Reference_Guide.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Security.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Security.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Security.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2381 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:div&gt;</literal> or "
+"<literal>&lt;s:span&gt;</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>&lt;restrict/&gt;</literal> element within the <literal>page</"
+"literal> elements that you wish to secure. If no explicit restriction is "
+"specified by the <literal>restrict</literal> element, an implied permission "
+"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
+"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
+"xhtml:restore</literal> will be required when any JSF postback (form "
+"submission) originates from the page. Otherwise, the specified restriction "
+"will be evaluated as a standard security expression. Here's a couple of "
+"examples:"
+msgstr ""
+
+#. Tag: programlisting
+#: 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Spring.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Spring.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Spring.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,875 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;seam:instance/&gt;</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>&lt;seam:instance/&gt;</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>&lt;seam:component/&gt;</literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal>&lt;seam:"
+"component/&gt;</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>&lt;seam:component/&gt;</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>&lt;seam:component/&gt;</"
+"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>&lt;seam:configure-scopes/&gt;</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>&lt;seam:instance/&gt;</literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal>&lt;aop:scoped-proxy/&gt;</"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal>&lt;seam:instance/&gt;</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>&lt;spring:context-loader/&gt;</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>&lt;spring:config-locations/&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Testing.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Testing.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Testing.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,867 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 at 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 at 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Text.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Text.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Text.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,383 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:formattedText/&gt;</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>&lt;s:formattedText/&gt;</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>&lt;</"
+"literal>, <literal>&gt;</literal> and <literal>&amp;</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 &lt;body&gt; 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&lt;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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tools.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tools.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tools.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,69 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tutorial.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tutorial.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Tutorial.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,4009 @@
+# Language zh-TW 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-05-03 11:34+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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 &lt;co id=\"registration-entity-annotation\"/&gt;\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>&lt;s:"
+"validateAll&gt;</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>&lt;h:dataTable&gt;</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&#8212;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>&lt;h:dataTable&gt;</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>&lt;h:dataTable&gt;"
+"</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>&lt;h:dataTable&gt;</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal>&lt;h:commandLink&gt;</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>&lt;h:commandButton&gt;</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>&lt;start-state&gt;</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>&lt;task-node&gt;</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>&lt;task&gt;</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>&lt;end-state&gt;</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>&lt;s:button&gt;</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>&lt;page&gt;</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>&lt;transition&gt;</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>&lt;action&gt;</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>&lt;decision&gt;</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"
+"       &#160;\n"
+"           <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+"                        reRender=\"searchResults\"/>\n"
+"       &#160;\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>&#160;\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>&lt;a:support&gt;</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>&lt;a:status&gt;</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>&lt;a:outputPanel&gt;</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</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>&lt;s:link&gt;"
+"</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>&lt;s:link&gt;</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>&lt;h:commandLink&gt;</literal> "
+"does not work with \"open in new window\". We'll see later that <literal>&lt;"
+"s:link&gt;</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"
+"            &#160;\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>&lt;h:dataTable&gt;</literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily&#8212;"
+"\"pulled\"&#8212;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&#8212;the <literal>Blog</literal>&#8212;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&#8212;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&#8212;the "
+"<literal>blogEntry</literal>&#8212;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&#160;\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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Validation.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Validation.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Validation.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,416 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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>&lt;s:validate&gt;</"
+"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&#8212;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>&lt;s:validateAll&gt;</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>&lt;s:validate&gt;</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>&lt;"
+"s:decorate&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Version_Info.po
===================================================================

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Weblogic.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Weblogic.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Weblogic.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,1748 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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> &#8212; <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&amp;major=10&amp;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> &#8212; <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&amp;major=10.3Tech&amp;minor=-1&amp;"
+"DL=www_WLS_10-3TechPreview_icon&amp;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> &#8212; 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> &#8212; 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> "
+"&#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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 &#8212; 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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Webservices.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Webservices.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Webservices.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,324 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Websphere.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Websphere.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Websphere.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,2085 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&amp;"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> &#8212; 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> &#8212; 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> &#8212; "
+"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> &#8212; "
+"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> &#8212; 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 &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &#8212; 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> &lt;"
+"transaction:ejb-transaction /&gt; </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> &lt;target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"&gt; "
+"</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>&lt;fileset dir=\"${basedir}\"&gt;</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/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Xml.po
===================================================================
--- branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Xml.po	                        (rev 0)
+++ branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/Xml.po	2009-11-27 01:09:33 UTC (rev 11685)
@@ -0,0 +1,941 @@
+# Language zh-TW 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-04 01:24+0000\n"
+"PO-Revision-Date: 2008-04-04 01:24+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&#8212;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&#8212;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>&lt;factory&gt;</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>&lt;factory&gt;</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>&lt;"
+"components&gt;</literal> or <literal>&lt;component&gt;</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>&lt;component&gt;</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>&lt;pay:payment-home&gt;</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>&lt;pay:payment&gt;</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 &#8212; <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core &#8212; <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools &#8212; <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework &#8212; <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms &#8212; <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting &#8212; <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme &#8212; <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security &#8212; <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail &#8212; <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web &#8212; <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf &#8212; <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring &#8212; <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""

Added: branches/enterprise/JBPAPP_4_3_CP07/doc/Seam2_Reference_Guide/zh-TW/master.po
===================================================================



More information about the seam-commits mailing list